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

Domain Driven Design & NoSQL

1.207 Aufrufe

Veröffentlicht am

A presentation from Lucas Dohmen about Domain Driven Design, NoSQL and how they can work together.

Veröffentlicht in: Software, 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.207
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
63
Aktionen
Geteilt
0
Downloads
10
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Domain Driven Design & NoSQL

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

×