Domain driven design @FrOSCon
-
Upload
arangodb -
Category
Technology
-
view
477 -
download
2
description
Transcript of Domain driven design @FrOSCon
Escaping the Tower of BabelDomain Driven Design & NoSQL
Escaping the Tower of BabelDomain Driven Design & NoSQL
class SpaceShuttle end !class Astronaut end
vI
Domain Driven Design
• Find an ubiquitous language
• Every person involved understands the language
• The language is based on the domain
Eric Evans
Iterative DevelopmentClose relationship
between devs & domain experts
Domain Driven Design
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?
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 relations
{(Alice, 1983-07-1, 1) (Bob, 2014-03-19, 2)}
name birthday city
Alice 1983-07-1 1
Bob 2014-03-19 2
Disconnect
Iv
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 containing other Tuples
• Tuples with arbitrary attributes
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
Iv
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 alongside the implementation
Explain graphs.
Learn about the domain.
Find the common language.
Build one model for everyone involved.
Evolve the model alongside the implementation
moonglummoonbeamlabs
arangodb.org