Building microservices oreilley Domain driven model - vidyasekaran/current_learning GitHub Wiki
Building microservices oreilley - designing fine grained systems - Sam NewMan
Read chap 3 how to model microservices - define boundary of microservice using technique from domain driven design to help focus our thinking.
Further reading
The canonical source for DDD is Eric Evans's book. It isn't the easiest read in the software literature, but it's one of those books that amply repays a substantial investment. Bounded Context opens part IV (Strategic Design).
Vaughn Vernon's Implementing Domain-Driven Design focuses on strategic design from the outset. Chapter 2 talks in detail about how a domain is divided into Bounded Contexts and Chapter 3 is the best source on drawing context maps.
I love software books that are both old and still-relevant. One of my favorite such books is William Kent's Data and Reality. I still remember his short description of the polyseme of Oil Wells.
Eric Evans describes how an explicit use of a bounded context can allow teams to graft new functionality in legacy systems using a bubble context. The example illustrates how related Bounded Contexts have similar yet distinct models and how you can map between them.
Techniques in domain driven models these are used to break monolith into microservices
Bubble context
Bubble context is a way to get started with ddd https://domainlanguage.com/wp-content/uploads/2016/04/GettingStartedWithDDDWhenSurroundedByLegacySystemsV1.pdf
Autonomous bubble context
The Autonomous Bubble is distinguished by the ability to run its software, for a time, cut off from other systems. Information may start to get stale, requests to external service requests start to queue up unfulfilled, but the internal behavior of the software continues to work. Whereas the Bubble Context obtains its data from another context when it is needed, via the umbilical ACL, the Autonomous Bubble typically has some data store of its own. The data store could be in-memory — the storage medium is irrelevant — but the data is in the form native to the context. This is not just a cache of frequently or recently used data. In fact, an umbilical ACL could cache data as a performance enhancement. The point of the local data store is that the overall evolution of the model and design in this context is much more loosely coupled to other contexts. It should be possible to test such a subsystem without mocks of other subsystems.
Autonomous bubble context uses ASYNCHRONIZING ANTICORRUPTION LAYER to use synch 2 contexts.
Multiple canonical models https://martinfowler.com/bliki/MultipleCanonicalModels.html
Bounded context https://martinfowler.com/bliki/BoundedContext.html
STRATEGY 3: EXPOSING LEGACY ASSETS AS SERVICES
- Why it is so hard to use legacy assets.
First, every new development effort that integrates with them gets dragged back into the old concepts and potentially tangled into the old implementation. This is the motivation for the bubble contexts of the previous sections.
-
Open-host Service over ACL
-
Synchronizing or Backing ACL
-
Context Granularity
-
The Future of Legacy
Start from Chap 2 Evolutionary architect