We've all seen the rise of microservices to become the canonical way to build systems for many developers. There are many benefits microservices can give a team, like easier to understand applications, better separation of concerns, and less git merges. However, its not all roses. Microservice architectures break some fundamental truths about
Microservice-based architectural design has exploded in almost every tech industry as the cononical way to build large-scale systems, but there are still holdouts. Why do so many companies choose this path, and why do others avoid it? We examine the tangible benefits and drawbacks of microservices-based architecture. Then, I propose a novel solution to ease the friction of adopting microservices.
Perils:
-
The Version Problem (monolithic versioning)
-
Good things
- Smaller parts are easier to grok
- Separation of concerns
- Separation of teams
- Better internal APIs
- External comms are contained
-
Bad things
- Dev Envs are clunky
- Cloning/Sharing a system
- Issue tracking
-
Version Problem
- Monolithic Versioning
- denvr/using Monolithic versioning as live doc
See LICENSE file.