Apply learnings of Pet Helland’s paper “Data on the Outside versus Data on the Inside” on Event Driven Systems… Read More Events on the Outside vs Events on the Inside
Not only does the event sourcing inherit complexities of the asynchronous world, but it also amplifies them. In this post, I will discuss what I have learnt from developing and supporting a system built based on event sourcing. I will use an example to share my learning and experiences below, as I believe examples help… Read More Lessons from developing and supporting event sourcing based system
When it comes to the events, the big debate is about the contents of its body. Some devs argue that events should carry the complete load with it, I am calling them Fat Events in this blog. And then we have others who believe that events should be lightweight and containing minimum details, hence I… Read More Events: Fat or Thin
In real-world monoliths, code of a single bounded context is spread across many dimensions. Extracting that code may require significant refactorings. It is rare to get an opportunity to refactor as a project of its own (in fact I do not believe that it is the best approach). So we try to do refactoring as… Read More Extracting microservice from a complex Monolith.
Besides an opportunity for my team to return to the comforts of dotnet from nodejs, performance improvements in asp.net core (as evident from the latest round i.e. 16 of Web Framework Benchmarks by TechEmpower) was another good reason to trial it for an internal microsite with limited users. Creating from SPA template Dotnet core SPA… Read More How to create a dotnet based SPA and deploy it with docker?
Furthermore to my previous post where I tried to compare events and commands, here I am presenting a scenario where they complement each other. As discussed, both of them are types of the messages and used for different purposes; while event messages are a backbone of the event-driven system, I believe that commands can add… Read More Events Love Commands
Cosmos DB has loads to offer, which make it a preferred choice in so many scenarios. Recently I was working on an audit log which is expected to be reasonably immutable (theoretically, every information on digital media is mutable). After looking at a few choices, we chose Cosmos DB along with Azure Service Bus and… Read More Immutable audit log in Cosmos DB
Most of the programmers quickly agree that naming is one of the hardest things they have to do as part of their Job. As Phil Karlton puts it “There are only two hard things in Computer Science: cache invalidation and naming things.“ Naming is hard because it is important to get it right. It is… Read More Events or Commands
Elastic search is a great search engine to enhance the search capabilities of your product. It is open-source and provides a RESTful interface for your application to interact with. You can read more about it online, as the internet is full of great articles going in-depth of various aspects of it. Most of the setup was… Read More Things to consider when implementing Elastic Search in .net
Domain Driven Design (DDD) is the widely accepted and proven pattern to build applications dealing with complex domains. Not many applications manage to maintain the clear boundaries between bounded contexts as they grow bigger. Even if it is realised, the high costs of refactoring discourage to bring things back on track. The cost of refactoring gets… Read More Decouple Entity Framework based monolith to well defined bounded contexts.