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

Underrated skill as a developer

What do you think is an important skill to have when in a role or wanting to be in a position that requires making decisions around software architecture and design? There was a phase in the middle of my career that changed my point of view. I’d like to explain what is an underrated skill that I credit for making various technical decisions, including those around architecture and design. YouTube Check out my YouTube channel, where I post all kinds of content accompanying my posts, including this video showing everything in this post. Budget This tweet resonated with me because there was… Read More »Underrated skill as a developer

BEWARE of Consumer Lag!

An essential aspect of Event-Driven Architecture is understanding how your system is performing (throughput). Everything is running smooth, and services are publishing and consuming events, and then out of nowhere, one service starts failing or has a significant decrease in throughput, which then causes havoc to your system. Let me explain some of those reasons and why having metrics and alarms will allow you to proactively make changes to keep everything running smoothly. YouTube Check out my YouTube channel, where I post all kinds of content accompanying my posts, including this video showing everything in this post. Consumer Lag / Queue Length… Read More »BEWARE of Consumer Lag!

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.