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

Domain Driven Design & NoSQL @ RedDotRuby Conf

Domain Driven Design & NoSQL @ RedDotRuby Conf

A little talk about Domain Driven Design and NoSQL I gave at the RedDotRuby Conf in Singapore.


Lucas Dohmen

June 26, 2014

More Decks by Lucas Dohmen

Other Decks in Programming


  1. Escaping the Tower of Babel Domain Driven Design & NoSQL

  2. Escaping the Tower of Babel Domain Driven Design & NoSQL

  3. class SpaceShuttle end ! class Astronaut end v I

  4. Domain Driven Design • Find an ubiquitous language • Every

    person involved understands the language • The language is based on the domain Eric Evans
  5. Iterative Development Close relationship between devs & domain experts Domain

    Driven Design
  6. Hi. I’m Lucas.

  7. From Köln / Cologne

  8. Dom / Cathedral

  9. Hohenzollernbrücke

  10. I work for ArangoDB GmbH

  11. We build ArangoDB

  12. ArangoDB is an Open Source NoSQL Database

  13. But what is NoSQL?

  14. SQL NoSQL

  15. SQL Not only SQL

  16. What is NoSQL? What is SQL? What is a relational

    algebra? What is a relation? Not SQL A relational algebra An algebra on relations
  17. {(Alice, 1983-07-1, 1) (Bob, 2014-03-19, 2)}

  18. name birthday city Alice 1983-07-1 1 Bob 2014-03-19 2

  19. Disconnect I v Ownership name: alice… type: spaceshuttle

  20. Entity Value Object Service Identified by ID Value What it

    does State Mutable Immutable Stateless
  21. + Factories + Repositories + Aggregates


  23. Lift the restriction • Tuples containing other Tuples • Tuples

    with arbitrary attributes
  24. Space Shuttle Parts

  25. Space Shuttle Parts Document Store

  26. I type: spaceshuttle v name: alice astronaut: 1 spaceshuttle: 3

  27. JOINS

  28. Alice Ownership SpaceShuttle

  29. Alice Ownership SpaceShuttle Graph Database

  30. Alice Ownership SpaceShuttle Parts

  31. Alice Ownership SpaceShuttle Parts I’m a document!

  32. Alice Ownership SpaceShuttle Parts Me too!

  33. Alice Ownership SpaceShuttle Parts

  34. Alice Ownership SpaceShuttle Parts Multi Model Database

  35. Disconnect I v Ownership name: alice… type: spaceshuttle

  36. I type: spaceshuttle v name: alice Ownership since: 2003

  37. Explain graphs. Learn about the domain. Find the common language.

    Build one model for everyone involved. Evolve the model alongside the implementation moonglum moonbeamlabs arangodb.org