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
420
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
63
Weird Parts
moonglum
0
78
Webanwendungen – Eine Frage des Stils
moonglum
0
250
AdequateJS: Where should I run my Code?
moonglum
0
42
Per Anhalter durch JavaScript
moonglum
0
130
Architectures for Modern Web Front Ends
moonglum
2
470
Per Anhalter durch JavaScript
moonglum
0
170
Architectures for Modern Web Front Ends
moonglum
0
95
AdequateJS: Wie viel JavaScript darf es denn sein?
moonglum
1
340
Other Decks in Programming
See All in Programming
Kotlin 2.0 and Beyond
antonarhipov
2
140
開発を加速する共有Swift Package実践
elmetal
PRO
0
360
Rechartsで楽にゴリゴリにカスタマイズする!
10tera
1
140
Rubyのobject_id
qnighy
6
1.3k
全力の跳躍を捉える計測アプリを作る
ogijun2018
1
1.2k
REXML改善のその後
naitoh
0
160
The Shape of a Service Object
inem
0
180
Mastering AsyncSequence - 使う・作る・他のデザインパターン(クロージャ、Delegate など)から移行する
treastrain
4
1.5k
労務ドメインを快適に開発する方法 / How to Comfortably Develop in the Labor Domain
yuki21
1
250
複雑さに立ち向かうための ソフトウェア開発入門
shiz
3
660
Rubyとクリエイティブコーディングの輪の広がり / The Growing Circle of Ruby and Creative Coding
chobishiba
1
240
大公開!iOS開発の悩みトップ5 〜iOSDC Japan 2024〜
ryunakayama
0
190
Featured
See All Featured
Designing for humans not robots
tammielis
248
25k
Typedesign – Prime Four
hannesfritz
39
2.3k
A Tale of Four Properties
chriscoyier
155
22k
The Cost Of JavaScript in 2023
addyosmani
40
5.2k
VelocityConf: Rendering Performance Case Studies
addyosmani
321
23k
Robots, Beer and Maslow
schacon
PRO
157
8.1k
Intergalactic Javascript Robots from Outer Space
tanoku
268
26k
The Art of Programming - Codeland 2020
erikaheidi
48
13k
Teambox: Starting and Learning
jrom
131
8.7k
Product Roadmaps are Hard
iamctodd
PRO
48
10k
The Brand Is Dead. Long Live the Brand.
mthomps
53
37k
Producing Creativity
orderedlist
PRO
340
39k
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