Projections in Event Sourcing

This post is a part of the Event Sourcing introduction series that I wrote for Event Store. All the articles are available in the Event Store Blog, along with other great articles about Event Sourcing. By definition, a projection is a representation of an object using a different perspective. For example, isometric and orthographic projections allow us to represent a 3D object on paper using different points of view. [Read More]

Event Sourcing and CQRS

This post is a part of the Event Sourcing introduction series that I wrote for Event Store. All the articles are available in the Event Store Blog, along with other great articles about Event Sourcing. CQRS stands for Command-Query Segregation Principle. Greg Young described (and named) the pattern thoroughly in 2010, but the idea existed way before that time. On a high level, CQRS states the fact that operations that trigger state transitions should be described as commands and any data retrieval that goes beyond the need of the command execution, should be named a query. [Read More]

Entities as event streams

This post is a part of the Event Sourcing introduction series that I wrote for Event Store. All the articles are available in the Event Store Blog, along with other great articles about Event Sourcing. In the introduction post, we got an overview of what is Event Sourcing and what the domain event is. In this guide, we can change the way we persist entities using events. The code in this article is C#-styled pseudo code. [Read More]

Event Sourcing basics

This post is a part of the Event Sourcing introduction series that I wrote for Event Store. All the articles are available in the Event Store Blog, along with other great articles about Event Sourcing. What is Event Sourcing Event Sourcing is an alternative way to persist data. In contrast with state-oriented persistence that only keeps the latest version of the entity state, Event Sourcing stores each state mutation as a separate record called an event. [Read More]

Global event stream

This post is a part of the Event Sourcing introduction series that I wrote for Event Store. All the articles are available in the Event Store Blog, along with other great articles about Event Sourcing. The previous post describes projection basics. However, subscribing to a single event stream that represents an entity (for example) isn’t useful. The projection code can handle any event that comes from the domain model and build sophisticated read models that serve a variety of needs. [Read More]

Peer-reviewed science and Free choice

Recently I read the book “Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations” by Nicole Forsgren, Jez Humble and Gene Kim. It is a very popular book that combines some great advice for organisations that want to become more productive when delivering software. As Jez Humble is involved, you could imagine that the Accelerate book is primarily focuses on DevOps. As a foundation for the advice, the book uses the DORA (DevOps Research and Assessment) reports that are based on their yearly survey. [Read More]

Hey, where is the UI part!?

TDLR; Chater 13 is currently being finalised and it has some UI bits. Will be published online only by the end of June. More content will be in the book repo in July and in this blog. I got quite a few questions from the readers of my book about the “missing chapter” and the part that should cover the user interface. Both are apparently missing from both the printed and electronic version. [Read More]
ddd  book 

The book is done!

Today, I wrote the final chapter for my book Hands-on Domain-Driven Design with .NET Core. There’s some more work to be done by the publisher and I expect them to ask for final adjustments. The book will go to print some time next week. Unfortunately, due to time pressure, the publisher has decided to exclude the last chapter from the printed version, so it will only be published online. You can get the book on Amazon or via Packt’s own webshop, where you often can get a bargain for the eBook. [Read More]
ddd  book 

Deploy GitLab CE on a new AKS cluster

Update: GitLab currently has a choice of cloud-native Helm charts, which might be more actual than using this recipe. Check this page to find out more. I would like to share my experience to create a small Kubernetes cluster on Azure Container Service (AKS Preview) and deploy GitLab CE there using the Helm chart. Creating a cluster in AKS should be an easy task but sometimes things don’t go at they suppose to. [Read More]

Hands-on Domain-Driven Design with C# Book

Ok, it is official that my book Hands-on Domain-Driven Design with C# will be published by Packt in January 2019. Here is the link to the book. What You Will Learn Discover domain complexity together with business stakeholders Avoid common pitfalls when creating the domain model Understand the concept of bounded context and aggregate Design and build temporal models based on behavior and not only data Explore benefits and drawbacks of event-sourcing Figure out CQRS and to-the-point read models with projections Practice building one-way flow UI with Vue. [Read More]
ddd  book