Coherence Product Manager Randy Stafford gave a talk titled "Patterns of Domain-Driven Design with In-Memory Data Grids" at the 2020 In-Memory Computing Summit conference.
This is the only conference focused exclusively on the in-memory computing space, and has been running annually since 2015. It is fitting for Coherence to be represented there.
Domain-Driven Design (DDD) has rightfully earned staying power as a software architecture style. Strictly speaking, its essence is abstract from, and upstream of, any particular implementation. But at some point the rubber must meet the road. Domain object classes must be coded, and their instances persisted somehow.
In-Memory Data Grids (IMDGs) typically incorporate a key-value data model. Thus the question arises, "how do I impose my domain model onto an IMDG?" In other words, assuming Maps are the primary abstraction available for storing data in an IMDG, what set of Maps should I have for storing my domain model? How should I handle inter-object relationships? What about transactions, especially those modifying multiple domain objects at a time?
This talk digs into those questions, and provides answers distilled over years of experience using IMDGs to manage domain objects in DDD-based applications. The distilled answers are essentially a set of patterns for using DDD with IMDGs. The talk also touches on how new capabilities, like GraphQL, are changing what is possible when using DDD with IMDGs.
Architects and developers intending to use DDD with IMDGs in their enterprise applications will benefit from the experience collected and distilled into these patterns, as they contemplate how best to resolve forces in their particular contexts.
A recording of the talk is available at https://www.imcsummit.org/2020/virtual/session/patterns-domain-driven-design-memory-data-grids.