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
440
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
30
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
Breaking Up with Big ViewModels — Without Breaking Your Architecture (droidcon Berlin 2025)
steliosf
PRO
1
290
monorepo の Go テストをはやくした〜い!~最小の依存解決への道のり~ / faster-testing-of-monorepos
convto
2
160
プロダクト開発をAI 1stに変革する〜SaaS is dead時代で生き残るために〜 / AI 1st Product Development
kobakei
0
450
実践AIチャットボットUI実装入門
syumai
7
2.4k
大規模アプリにおけるXcode Previews実用化までの道のり
ikesyo
0
990
私達はmodernize packageに夢を見るか feat. go/analysis, go/ast / Go Conference 2025
kaorumuta
2
460
そのpreloadは必要?見過ごされたpreloadが技術的負債として爆発した日
mugitti9
2
2.8k
高度なUI/UXこそHotwireで作ろう Kaigi on Rails 2025
naofumi
4
3.1k
Build your own WebP codec in Swift
kishikawakatsumi
2
880
GitHub Actions × AWS OIDC連携の仕組みと経緯を理解する
ota1022
0
230
あなたの知らない「動画広告」の世界 - iOSDC Japan 2025
ukitaka
0
340
CI_CD「健康診断」のススメ。現場でのボトルネック特定から、健康診断を通じた組織的な改善手法
teamlab
PRO
0
160
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
950
Designing Experiences People Love
moore
142
24k
Automating Front-end Workflow
addyosmani
1371
200k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.7k
4 Signs Your Business is Dying
shpigford
185
22k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
51k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
It's Worth the Effort
3n
187
28k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
53k
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