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 @ RedDotRuby Conf
Search
Lucas Dohmen
June 26, 2014
Programming
0
450
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
56
Weird Parts
moonglum
0
78
Webanwendungen – Eine Frage des Stils
moonglum
0
250
AdequateJS: Where should I run my Code?
moonglum
0
39
Per Anhalter durch JavaScript
moonglum
0
120
Architectures for Modern Web Front Ends
moonglum
2
460
Per Anhalter durch JavaScript
moonglum
0
140
Architectures for Modern Web Front Ends
moonglum
0
78
AdequateJS: Wie viel JavaScript darf es denn sein?
moonglum
1
300
Other Decks in Programming
See All in Programming
9年開発を牽引して見えてきた、共通化すべきものと個別でつくるもの ~プログラム言語~
shinout
1
640
FigmaとPHPで作る1ミリたりとも表示崩れしない最強の帳票印刷ソリューション
ttskch
39
17k
Java 22 Overview
kishida
1
160
Designing for tomorrow's programming workflows
honnibal
PRO
2
110
PostmanでAPIの動作確認が楽になった話
h455h1
0
110
Ruby Pattern Matching
bkuhlmann
0
920
Elm Form Validation
bkuhlmann
0
500
StreamlitとTerraformでデータカタログを作った話
gussan0223
0
290
SwiftUI Performance 不要なViewの再描画と更新を抑える
bigamitiongit
1
150
PHP8.3の機能を振り返る / Review of PHP 8.3 features
seike460
PRO
1
110
データアナリストが行うDatabricksを活用したETLの自動化事例
shinoa
0
250
VSCodeでのDatabricks開発もお勧めしたい/I would also recommend Databricks development with VSCode.
kazumain
0
230
Featured
See All Featured
Designing Experiences People Love
moore
135
23k
What’s in a name? Adding method to the madness
productmarketing
PRO
15
2.6k
Creatively Recalculating Your Daily Design Routine
revolveconf
209
11k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
153
14k
The Art of Programming - Codeland 2020
erikaheidi
41
12k
From Idea to $5000 a Month in 5 Months
shpigford
377
45k
The Power of CSS Pseudo Elements
geoffreycrofte
58
5k
The Mythical Team-Month
searls
214
42k
Thoughts on Productivity
jonyablonski
57
3.8k
Pencils Down: Stop Designing & Start Developing
hursman
116
11k
Building Applications with DynamoDB
mza
88
5.6k
Testing 201, or: Great Expectations
jmmastey
27
6.3k
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