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

SOLID? Nope, just Coupling and Cohesion

How do we avoid writing spaghetti code so our systems don’t turn into a hot mess? For me Coupling and Cohesion. Some people focus on things like SOLID principles and Clean Architecture. While I don’t necessarily have a problem with that if you’re pragmatic, I don’t ever really think about either of those explicitly. YouTube Check out my YouTube channel where I post all kinds of content that accompanies my posts including this video showing everything in this post. Coupling and Cohesion With over 20 years of professional software development experience, I’m mostly thinking about coupling and cohesion as a guide to… Read More »SOLID? Nope, just Coupling and Cohesion

Blocking or Non-Blocking API calls?

When should you use blocking or non-blocking API calls? Blocking synchronous communication vs non-blocking asynchronous communication? Should commands fire and forget? What’s the big deal of making blocking synchronous calls between services? YouTube Check out my YouTube channel where I post all kinds of content that accompanies my posts including this video showing everything in this post. Communication There are 3 different forms of communication that I’m generally thinking of. Commands, Queries, and Events. I’m going to cover all three and the pros/cons of using blocking synchronous or non-blocking asynchronous with each of them. Commands With commands, it’s all about users’/clients expectations.… Read More »Blocking or Non-Blocking API calls?

Avoiding Batch Jobs by a message in the FUTURE

Some people will call it cron jobs, scheduled tasks, or batch jobs. Whatever you call it, it’s a process that runs periodically looking at the state of a database to determine some specific action to occur for the various records it finds. If you’ve dealt with this, you probably know it can be a nightmare, especially with failures. And of course, these usually run in the middle of the night, so get ready for a page! YouTube Check out my YouTube channel where I post all kinds of content that accompanies my posts including this video showing everything in this post. Reservation… Read More »Avoiding Batch Jobs by a message in the FUTURE