Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Domain Driven Design & NoSQL
Search
Lucas Dohmen
March 22, 2014
Programming
0
450
Domain Driven Design & NoSQL
I gave this presentation at the excellent RubyConf India.
Lucas Dohmen
March 22, 2014
Tweet
Share
More Decks by Lucas Dohmen
See All by Lucas Dohmen
Frontend Architecture
moonglum
1
94
Weird Parts
moonglum
0
110
Webanwendungen – Eine Frage des Stils
moonglum
0
290
AdequateJS: Where should I run my Code?
moonglum
0
78
Per Anhalter durch JavaScript
moonglum
0
200
faucet-pipeline
moonglum
0
31
Architectures for Modern Web Front Ends
moonglum
2
490
Per Anhalter durch JavaScript
moonglum
0
220
Architectures for Modern Web Front Ends
moonglum
0
140
Other Decks in Programming
See All in Programming
All About Angular's New Signal Forms
manfredsteyer
PRO
0
120
Go言語はstack overflowの夢を見るか?
logica0419
0
250
CSC305 Lecture 03
javiergs
PRO
0
240
「ちょっと古いから」って避けてた技術書、今だからこそ読もう
mottyzzz
10
6.6k
私達はmodernize packageに夢を見るか feat. go/analysis, go/ast / Go Conference 2025
kaorumuta
2
550
スマホから Youtube Shortsを見られないようにする
lemolatoon
27
31k
育てるアーキテクチャ:戦い抜くPythonマイクロサービスの設計と進化戦略
fujidomoe
1
170
Your Perfect Project Setup for Angular @BASTA! 2025 in Mainz
manfredsteyer
PRO
0
170
『毎日の移動』を支えるGoバックエンド内製開発
yutautsugi
2
240
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
280
After go func(): Goroutines Through a Beginner’s Eye
97vaibhav
0
380
CSC305 Lecture 06
javiergs
PRO
0
220
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
100
5.8k
KATA
mclloyd
32
15k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
19
1.2k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
61k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.7k
Making Projects Easy
brettharned
119
6.4k
Unsuck your backbone
ammeep
671
58k
The Power of CSS Pseudo Elements
geoffreycrofte
79
6k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
For a Future-Friendly Web
brad_frost
180
9.9k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.6k
Transcript
Escaping the Tower of Babel Domain Driven Design & NoSQL
class SpaceShuttle end ! class Astronaut end v I
Domain Driven Design • Find an ubiquitous language • The
language is based on the domain • Every person involved understands the language Eric Evans
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 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 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 containing other Tuples • Tuples
with arbitrary attributes
Space Shuttle Parts
Space Shuttle Parts Document Store
I type: spaceshuttle v name: 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
I type: spaceshuttle v name: 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