Difference Between Event and Message

Those new to Event Driven Architectures often treat the words “events” and “messages” as interchangeable.  Though they have a lot of properties in common, they are meant for different purposes and have different properties.  The most common definition I get for the two words is that of a message. A message is a request from…

read More
The Best Way to Share Data Among Bounded Contexts

When first learning Domain Driven Design it is common to run into problems in data sharing.  Domain Driven Design recommends that data is kept in silos, or Bounded Contexts, where only one BC is allowed access and if other Bounded Contexts need access to that data they must ask for it.  This can lead to…

read More
Logger Injection vs Static Logging

When deciding how to log messages from an application it can be tempting to use the static logger offered by the various implementations NuGet packages.  They are ready to use out of the box so you can get started quickly, but saving the 5 minutes to create a wrapper around the logger and inject it…

read More
Migrating a Legacy System to CQRS

One of the most difficult parts of migrating an existing legacy system to DDD and CQRS is keeping all the other systems running.  Legacy systems often use the database as a communication path by assuming the DB is always updated with the latest data, and acting on the current state.  Trying to break off a…

read More
Testing EDA is Less Expensive than you Think

If you want to start trying out Even Driven Architecture to see if it’s right for you, you may be worried about costs or the initial effort required.  Standing up a Kafka server may seem like a daunting task to experiment with a new technology.  However, there is an easier way that is also lighter…

read More
Should a Repository Log Exceptions

I recently had a question about whether a repository should log exceptions that occur during DB updates. We have a rule that repositories should not call other services.  Since a repository call should be the last thing done before data is persisted, there should be no reason to call another service since all business rules…

read More
DDD is not Architecture

In some recent discussions with potential clients, they’ve told me that one of their goals for their project was to migrate to a DDD architecture.  Though it’s clear the idea they were trying to get across, the idea of a DDD architecture doesn’t make sense. The main idea behind DDD is in the name itself:…

read More
Installing Spring Tool Suite into Eclipse

Even as Visual Studio and .NET Developers, we must sometimes build tools or apps based on Java.  I came across this recently as my team was investigating using a Spring Cloud Config server for server configuration settings.  It uses GIT as it’s source of configurations, making maintenance of server settings easier than using a DB,…

read More
Greenfield and Brownfield Application Development

To quote Marc Andreeson, “Software is eating the world”. To those in the technology industry this should be self-evident since we see new software applications being created each day. A question rarely asked is what happens to all that software as it gets older and needs to change to meet new market demands. To answer…

read More