Escaping the 
Tower of Babel 
Domain Driven Design & NoSQL
Escaping the 
Tower of Babel 
Domain Driven Design & NoSQL
vI 
class SpaceShuttle 
end 
! 
class Astronaut 
end
Domain Driven Design 
Eric Evans 
• Find an ubiquitous language 
• Every person involved understands the 
language 
• The ...
Domain Driven Design 
Iterative Development 
Close relationship 
between 
devs & domain experts
Hi. 
I’m Lucas.
From Köln / Cologne
I work for 
ArangoDB GmbH
We build 
ArangoDB
ArangoDB 
is an Open Source 
NoSQL Database
But what is NoSQL?
NoSQL 
SQL
Not only SQL 
SQL
What is NoSQL? 
What is SQL? 
What is a relational 
algebra? 
What is a relation? 
Not SQL 
A relational algebra 
An algeb...
{(Alice, 1983-07-1, 1) 
(Bob, 2014-03-19, 2)}
name birthday city 
Alice 1983-07-1 1 
Bob 2014-03-19 2
Disconnect 
Ownership 
I 
v 
type: spaceshuttle 
name: alice…
Entity Value Object Service 
Identified by ID Value What it does 
State Mutable Immutable Stateless
+ Factories 
+ Repositories 
+ Aggregates
DENORMALIZATION
Lift the 
restriction 
• Tuples containing other Tuples 
• Tuples with arbitrary attributes
Space Shuttle 
Parts
Document 
Space Shuttle 
Store 
Parts
Itype: 
spaceshuttle 
vname: 
alice 
astronaut: 1 
spaceshuttle: 3
JOINS
Alice Ownership SpaceShuttle
Alice Ownership SpaceShuttle Graph 
Database
Alice Ownership 
SpaceShuttle 
Parts
Alice Ownership 
SpaceShuttle 
Parts 
I’m a 
document!
Alice Ownership 
SpaceShuttle 
Parts 
Me too!
Alice Ownership 
SpaceShuttle 
Parts
Multi Model 
SpaceShuttle 
Alice Database 
Ownership 
Parts
Disconnect 
Ownership 
I 
v 
type: spaceshuttle 
name: alice…
Itype: 
spaceshuttle 
vname: 
alice 
Ownership 
since: 
2003
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 
Explain graphs. 
Learn about the domain. 
Find the common language. 
Build one model...
Nächste SlideShare
Wird geladen in …5
×

Domain driven design @FrOSCon

1.500 Aufrufe

Veröffentlicht am

Lucas' Talk about domain driven design at the FrOSCon from 23th and 24th of August

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
1.500
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
2
Aktionen
Geteilt
0
Downloads
9
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Domain driven design @FrOSCon

  1. 1. Escaping the Tower of Babel Domain Driven Design & NoSQL
  2. 2. Escaping the Tower of Babel Domain Driven Design & NoSQL
  3. 3. vI class SpaceShuttle end ! class Astronaut end
  4. 4. Domain Driven Design Eric Evans • Find an ubiquitous language • Every person involved understands the language • The language is based on the domain
  5. 5. Domain Driven Design Iterative Development Close relationship between devs & domain experts
  6. 6. Hi. I’m Lucas.
  7. 7. From Köln / Cologne
  8. 8. I work for ArangoDB GmbH
  9. 9. We build ArangoDB
  10. 10. ArangoDB is an Open Source NoSQL Database
  11. 11. But what is NoSQL?
  12. 12. NoSQL SQL
  13. 13. Not only SQL SQL
  14. 14. What is NoSQL? What is SQL? What is a relational algebra? What is a relation? Not SQL A relational algebra An algebra on relations
  15. 15. {(Alice, 1983-07-1, 1) (Bob, 2014-03-19, 2)}
  16. 16. name birthday city Alice 1983-07-1 1 Bob 2014-03-19 2
  17. 17. Disconnect Ownership I v type: spaceshuttle name: alice…
  18. 18. Entity Value Object Service Identified by ID Value What it does State Mutable Immutable Stateless
  19. 19. + Factories + Repositories + Aggregates
  20. 20. DENORMALIZATION
  21. 21. Lift the restriction • Tuples containing other Tuples • Tuples with arbitrary attributes
  22. 22. Space Shuttle Parts
  23. 23. Document Space Shuttle Store Parts
  24. 24. Itype: spaceshuttle vname: alice astronaut: 1 spaceshuttle: 3
  25. 25. JOINS
  26. 26. Alice Ownership SpaceShuttle
  27. 27. Alice Ownership SpaceShuttle Graph Database
  28. 28. Alice Ownership SpaceShuttle Parts
  29. 29. Alice Ownership SpaceShuttle Parts I’m a document!
  30. 30. Alice Ownership SpaceShuttle Parts Me too!
  31. 31. Alice Ownership SpaceShuttle Parts
  32. 32. Multi Model SpaceShuttle Alice Database Ownership Parts
  33. 33. Disconnect Ownership I v type: spaceshuttle name: alice…
  34. 34. Itype: spaceshuttle vname: alice Ownership since: 2003
  35. 35. Explain graphs.
  36. 36. Learn about the domain.
  37. 37. Find the common language.
  38. 38. Build one model for everyone involved.
  39. 39. Evolve the model alongside the implementation
  40. 40. moonglum moonbeamlabs arangodb.org Explain graphs. Learn about the domain. Find the common language. Build one model for everyone involved. Evolve the model alongside the implementation

×