Service Extinction

Learn about evolution extinction, completed promotion service, simple promotion service, application aware router, and deciding between services to keep using.


Evolution by natural selection is a brutal, messy process. It wastes resources profligately. It’s random, and changes fail more often than they succeed. The key ingredients are repeated iterations of small variations with selection pressure. On the other hand, evolution does progress by incremental change. It produces organisms that are more and more fit for their environment over time. When the environment changes rapidly, some species disappear while others become more prevalent. So while any individual or species is vulnerable in the extreme, the ecosystem as a whole tends to persist.

We will look at evolutionary architecture in Evolutionary Architecture. It attempts to capture the adaptive power of incremental change within an organization. The idea is to make our organization antifragile by allowing independent change and variation in small grains. Small units of technology and of business capability can succeed or fail on their own.

Paradoxically, the key to making evolutionary architecture work is failure. We have to try different approaches to similar problems and kill the ones that are less successful.

Complected promotion service

Take a look at the figure below. Suppose we have two ideas about promotions that will encourage users to register. We’re trying to decide between cross-site tracking bugs to zero in on highly interested users versus a blanket offer to everyone. The big service will accumulate complexity faster than the sum of two smaller services. That’s because it must also make decisions about routing and precedence (at a minimum). Larger codebases are more likely to catch a case of “frameworkitis” and become overgeneralized. There’s a vicious cycle that comes into play: more code means it’s harder to change, so every piece of code needs to be more generalized, but that leads to more code. Also, a shared database means every change has a higher potential to disrupt. There’s little isolation of failure domains here.

Get hands-on with 1200+ tech skills courses.