Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Polyglot Persistence: From Architecture to Solu...

CodeFest
February 06, 2018

Polyglot Persistence: From Architecture to Solutions, CodeFest 2017

https://2015.codefest.ru/lecture/1035

Михаил Ярийчук (Hibernating Rhinos)
Dino Esposito (Evangelist)
Oren Eini (Hibernating Rhinos)

In today's complex business systems, we have run out of what can be done with a single persistence solution, be it ever so capable. We need to be able to build systems that are able to work with multiple complex domains. In this panel we’ll apply polyglot persistence in the real world because that’s what the real world actually requires. We’ll see how to model such systems, how to share data between multiple data storage solution in order to make the OPTIMAL use case for each of those and how to bring them all together in a cohesive manner that is performant, maintainable and understandable.

CodeFest

February 06, 2018
Tweet

More Decks by CodeFest

Other Decks in Technology

Transcript

  1. 1 Make sense of requirements 2 Build a (relational) data

    model Try again 3 Identify relevant tasks and data tables Build a user interface 4 Close to what users wanted but… 5
  2. DDD CQRS Event Sourcing Relational NoSQL Design and Implementation CQRS

    w/o Domain Model w/o Event Sourcing Analysis DOMAIN Ubiquitous Language Bounded Contexts Persistence POLYGLOT PERSISTENCE w/o Relational w/o all NoSQL flavors Analysis
  3. Ubiquitous Language Natural language, not artificial Comes out of interviews

    and brainstorming Iteratively composed and refined along the way Unambiguous and fluent Meets expectations of domain experts Meets expectations of technical people
  4. “Use the model as the backbone of a language.” Eric

    Evans  Discovering the ubiquitous language  leads you to understand the business domain  in order to design a model. PS: Any model that works. Not necessarily an object-oriented model.
  5. Understanding the domain in order to build the model means

     Understanding type and shape of the data being used  How data is aggregated in the specific business domain  How to persist that data  Impact of data store and data storage API on overall performance in read and write