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

Synchronous vs Messaging: When to use which?

Not all communication will be synchronous request/response with HTTP/RPC or asynchronous messaging within a system. But how do you choose between Synchronous vs Messaging? Well, it depends on if it’s a command and/or a query as well as where the request is originating from. If you want reliability and resiliency, then use messaging where it’s appropriate. YouTube Check out my YouTube channel where I post all kinds of content that accompanies my posts including this video showing everything that is in this post. Synchronous The most common places you’ll encounter making synchronous Request/Response calls are to 3rd party services, infrastructure (like a… Read More »Synchronous vs Messaging: When to use which?

Message Driven Architecture to DECOUPLE a Monolith

Message driven architecture doesn’t need to apply just to Microservices. You can apply a Message Driven Architecture to a Monolith to decouple concerns. Consuming Commands and Events to handle concerns into their isolated units. The asynchrony and isolation will also enable your application to be more reliable and resilient. YouTube Check out my YouTube channel where I post all kinds of content that accompanies my posts including this video showing everything that is in this post. Monolith Just because you’re developing a monolith, doesn’t mean you can’t leverage a message driven architecture. Messaging isn’t simply about communicating with other services. You can… Read More »Message Driven Architecture to DECOUPLE a Monolith

Does CAP Theorem apply to Microservices?

Microservices are a distributed system so CAP Theorem must apply right? Well, that depends on how you define microservices and a distributed system! Microservices are defined as “loosely coupled services oriented architecture with bounded context”. SOA implies Event Driven Architecture. If your microservices are loosely coupled, they aren’t making direct RPC calls to each other. If this is the case, then there are no partitions that can occur between services. If services are a bounded context and own their own data, then there is no consistency between services. CAP does not apply to Microservices if they are loosely coupled and… Read More »Does CAP Theorem apply to Microservices?