Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Domain Driven Design & NoSQL @ RedDotRuby Conf
Lucas Dohmen
June 26, 2014
Programming
0
390
Domain Driven Design & NoSQL @ RedDotRuby Conf
A little talk about Domain Driven Design and NoSQL I gave at the RedDotRuby Conf in Singapore.
Lucas Dohmen
June 26, 2014
Tweet
Share
More Decks by Lucas Dohmen
See All by Lucas Dohmen
Frontend Architecture
moonglum
1
28
Weird Parts
moonglum
0
25
Webanwendungen – Eine Frage des Stils
moonglum
0
94
AdequateJS: Where should I run my Code?
moonglum
0
23
Per Anhalter durch JavaScript
moonglum
0
17
Architectures for Modern Web Front Ends
moonglum
2
410
Per Anhalter durch JavaScript
moonglum
0
80
Architectures for Modern Web Front Ends
moonglum
0
39
AdequateJS: Wie viel JavaScript darf es denn sein?
moonglum
1
160
Other Decks in Programming
See All in Programming
1時間半で克服するJavaScriptの非同期処理/async_javascript_kokufuku
marchin1989
2
620
A Philosophy of Software Design 後半
yosuke_furukawa
PRO
10
2.8k
Get Ready for Jakarta EE 10
ivargrimstad
0
2.6k
Baseline Profilesでアプリのパフォーマンスを向上させる / Improve app performance with Baseline Profiles
numeroanddev
0
250
チームでカレーを作ろう!アジャイルカレークッキング
akitotsukahara
0
860
IE Graduation (IE の功績を讃える)
jxck
20
12k
Jetpack Compose, 어디까지 알고 있을까?
jisungbin
0
120
Amazon ECSのネットワーク関連コストの話
msato
0
650
VisualProgramming_GoogleHome_LINE
nearmugi
1
230
リアルタイムボイスチェンジャーMMVCとVITSの紹介
stealthinu
0
130
BASE BANKチームの技術選定と歴史 / how to decide technology selection for startup
budougumi0617
0
1.2k
短納期でローンチした新サービスをJavaで開発した話/launched new service using Java
eichisanden
6
2k
Featured
See All Featured
Robots, Beer and Maslow
schacon
152
7.1k
Six Lessons from altMBA
skipperchong
14
1.4k
It's Worth the Effort
3n
172
25k
Gamification - CAS2011
davidbonilla
75
3.9k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
226
15k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
15
950
The MySQL Ecosystem @ GitHub 2015
samlambert
238
11k
Making the Leap to Tech Lead
cromwellryan
113
7.4k
GitHub's CSS Performance
jonrohan
1020
420k
In The Pink: A Labor of Love
frogandcode
131
21k
The Cult of Friendly URLs
andyhume
68
4.8k
Art Directing for the Web. Five minutes with CSS Template Areas
malarkey
196
9.4k
Transcript
Escaping the Tower of Babel Domain Driven Design & NoSQL
Escaping the Tower of Babel Domain Driven Design & NoSQL
class SpaceShuttle end ! class Astronaut end v I
Domain Driven Design • Find an ubiquitous language • Every
person involved understands the language • The language is based on the domain Eric Evans
Iterative Development Close relationship between devs & domain experts Domain
Driven Design
Hi. I’m Lucas.
From Köln / Cologne
Dom / Cathedral
Hohenzollernbrücke
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