Event Driven Architecture and Coupling: You’re Not as Decoupled as You Think

  • by Derek Comartin
  • Published on Derek Comartin (CodeOpinion)
  • Curated on
  • Uncategorized
Event Driven Architecture and Coupling: You’re Not as Decoupled as You Think - Derek Comartin (CodeOpinion)
Image: Derek Comartin (CodeOpinion)

So, you broke apart your monolith. You introduced a message broker. You’re using event driven architecture. Events are flying everywhere.

You’re decoupled now, right?

But somehow nothing feels any better because your system is still really brittle.

YouTube

Check out my YouTube channel, where I post all kinds of content on Software Architecture & Design, including this video showing everything in this post.

CRUD Events

The problem might be the events you’re publishing:

ShipmentStatusChangedShipmentAddressUpdatedEstimatedDeliveryDateChangedCarrierIdUpdated

Every other service subscribes to these events and maintains its own local copy of shipment data.

You might think you’re decoupling your system because you’re publishing events to different consumers, but you’re not. All you’ve really done is start replicating data everywhere.

What Does Shipment Status Changed Actually Mean?

Suppose we introduce a new shipment status.…