More on this book
Community
Kindle Notes & Highlights
with their own lifecycles,
“Gather together those things that change for the same reason, and separate those things that change for different reasons.”
Chapter 4. Services can and should make heavy use of third-party libraries to reuse common code. But they don’t get us all the way there.
Our requirements shift more rapidly than they do for people who design and build buildings
The things we create are not fixed points in time.
Thus, our architects need to shift their thinking away from creating the perfect end product, and instead focus on helping create a framework in which the right systems can emerge, and continue to grow as we learn more.
he zones a city. So as in SimCity, you might designate part of your city as an industrial zone, and another part as a residential zone. It is then up to other people to decide what exact buildings get created, but there are restrictions: if you want to build a factory, it will need to be in an industrial zone.
the town planner will instead spend far more time working out how people and utilities move from one zone to another.
The town planner does his best to anticipate these changes, but accepts that trying to exert direct control over all aspects of what happens is futile.
As architects, we need to worry much less about what happens inside the zone than what happens between the zones.
When services are loosely coupled, a change to one service should not require a change to another.
We want related behavior to sit together, and unrelated behavior to sit elsewhere.
seen. Prematurely decomposing a system into microservices can be costly, especially if you are new to the domain. In many ways, having an existing codebase you want to decompose into microservices is much easier than trying to go to microservices from the beginning.
When you start to think about the bounded contexts that exist in your organization, you should be thinking not in terms of data that is shared, but about the capabilities those contexts provide the rest of the domain.