Fragmentation is the bane of every software engineer's existence, where related concerns are scattered across a codebase like a two-year-old's toy collection. It's the reason we can't have nice things, like readable code and maintainable systems, because some architect decided to "organize" things by sprinkling them everywhere like salt on a bland meal.
I tried to add a simple feature to the payment system, but it turned into a two-week odyssey of navigating the fragmentation of payment logic across 27 different microservices, 14 databases, and a partridge in a pear tree.
When the new hire asked why the user authentication code was fragmented across multiple layers and directories, the senior engineer just sighed and said, "Welcome to the wonderful world of enterprise software development."
Go Macro First, then Micro: Start with larger services around logical domain concepts and break them down into smaller services when your teams are operationally ready to handle the fragmentation. Break a Monolith into Microservices
Patterns of Legacy Displacement: Learn patterns to break the cycle of half-completed technology replacements and incrementally deliver value while reducing fragmentation. Patterns of Legacy Displacement
How to Extract a Data-Rich Service from a Monolith: Discover techniques to break apart monoliths and extract data-rich services while minimizing fragmentation of data. Extract Data-Rich Service from a Monolith
Note: the Developer Dictionary is in Beta. Please direct feedback to skye@statsig.com.