Skip to content

Sponsor: Do you build complex software systems? See how NServiceBus makes it easier to design, build, and manage software systems that use message queues to achieve loose coupling. Get started for free.

Learn more about Software Architecture & Design.
Join thousands of developers getting weekly updates to increase your understanding of software architecture and design concepts.


Follow @CodeOpinion

Derek Comartin

Abstractions to easily swap implementations? Not so fast.

Why do you create an abstraction? One reason is to simplify the underlying concept and API. Another reason, probably more common, is that the internal implementation might change. While this can be true, it’s not always as straightforward as you’d think. I will give a couple of examples of things to think about when you’re designing an API. YouTube Check out my YouTube channel, where I post all kinds of content accompanying my posts, including this video showing everything in this post. Expected Behavior I will use a Repository as the example in most of this post since it’s pretty common and… Read More »Abstractions to easily swap implementations? Not so fast.

Untangling the many aspects of EDA

With the popularity of Microservices, Kafka, and Event Sourcing, the term “Event” has become pretty overloaded and has caused much confusion about what EDA (Event-Driven Architecture) is. This confusion has led to conflating different concepts leading to unneeded technical complexity. I will shed some light on different aspects of EDA, such as Event Sourcing, Event-Carried State Transfer, and Events for Workflow. YouTube Check out my YouTube channel, where I post all kinds of content accompanying my posts, including this video showing everything in this post. “Event” If you ask people how they apply event-driven architecture, you’ll likely get many different answers. It… Read More »Untangling the many aspects of EDA

Troubleshooting Kafka with 2000 Microservices

Event-Driven Architecture is excellent for loose coupling between services. But as with everything, it comes with its challenges and complexity. One of which is Troubleshooting. I will dive into issues Wix.com experienced when using Kafka with over 2000 microservices. While this might not be your scale, you’ll likely encounter the same situations when working with Kafka or Event-Driven Architecture. YouTube Check out my YouTube channel, where I post all kinds of content accompanying my posts, including this video showing everything in this post. Tracing One of the common issues people face with Event-Driven Architecture is understanding the flow of events and interactions… Read More »Troubleshooting Kafka with 2000 Microservices