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
What is in the name? Naming your variables and methods is not easier than naming your baby, we cannot just pick a name that sounds pretty to the mother. Generally programmers would rate naming methods and variables as tough or at least an important task. I have impression that after the books like “Smalltalk Best Practice… Read More Use meaningful names in your code
Sometimes you can relate the decisions and leanings of software development with other events of your life. Recently I have had a deja vu (Déjà vu) effect while brainstorming big bang vs piece meal approach to decouple a complex monolith. A story of failed family holiday Let me tell you a small story from my… Read More Monolith to microservices – a journey of baby steps.