Distributed systems evolution header image

Distributed systems evolution

What are the challenges posed by evolving distributed systems architecture? In this short series of articles, we’ll understand the critical factors we should be keeping an eye on and how to address them.

This series of articles focuses on the challenges and the approaches needed to evolve a distributed system designed using a Service-Oriented Architecture approach using messages and queues to enable cross services communication.

We’ll start by investigating the challenges involved, for example:

  • What evolving a distributed system means
  • What the change or evolution direction is, and why it matters
  • What are the change types we need to handle
  • What no-downtime deployments are, and their impact

We’ll then analyze what options we have for evolving messages and process states. We’ll do that by looking at:

  • How message contracts are shared across services
  • If there is any relationship between .NET types and messages on the wire
  • How to handle non-breaking changes and if there is any advantage in handling them differently than breaking ones
  • What is the impact of changing the topology
  • What is the process state and how to evolve it
  • What to do when changes need to be retroactive

Photo by Cenk Batuhan Özaltun on Unsplash

Articles in this series:

Distributed systems evolution challenges


What are the challenges posed by evolving distributed systems architecture? In this short series of articles, we'll understand the critical factors we should be keeping an eye on and how to address them.

Continue reading...

Distributed systems evolution: message contracts


Evolving distributed systems architecture is challenging. If the system is message-based, the first challenge comes from evolving message contracts.

Continue reading...

Distributed systems evolution: processes state


Evolving distributed systems architecture is challenging. Addressing message evolution is one aspect. Another one is evolving existing processes and their persisted status.

Continue reading...

Distributed systems evolution: topology changes


Evolving distributed systems architecture is challenging. It's not only a matter of evolving message contracts or processes state. Surprisingly, deployments can play a role in creating more challenges.

Continue reading...