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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Lucas Dohmen
March 22, 2014
Programming
450
0
Share
Domain Driven Design & NoSQL
I gave this presentation at the excellent RubyConf India.
Lucas Dohmen
March 22, 2014
More Decks by Lucas Dohmen
See All by Lucas Dohmen
Frontend Architecture
moonglum
1
130
Weird Parts
moonglum
0
130
Webanwendungen – Eine Frage des Stils
moonglum
0
310
AdequateJS: Where should I run my Code?
moonglum
0
100
Per Anhalter durch JavaScript
moonglum
0
220
faucet-pipeline
moonglum
0
45
Architectures for Modern Web Front Ends
moonglum
2
500
Per Anhalter durch JavaScript
moonglum
0
240
Architectures for Modern Web Front Ends
moonglum
0
160
Other Decks in Programming
See All in Programming
Redox OS でのネームスペース管理と chroot の実現
isanethen
0
500
PHPで TLSのプロトコルを実装してみるをもう一度しゃべりたい
higaki_program
0
140
AI時代のシステム設計:ドメインモデルで変更しやすさを守る設計戦略
masuda220
PRO
6
1.2k
一度始めたらやめられない開発効率向上術 / Findy あなたのdotfilesを教えて!
k0kubun
3
2.7k
今年もTECHSCOREブログを書き続けます!
hiraoku101
0
220
GC言語のWasm化とComponent Modelサポートの実践と課題 - Scalaの場合
tanishiking
0
140
AI 開発合宿を通して得た学び
niftycorp
PRO
0
190
The free-lunch guide to idea circularity
hollycummins
0
400
20260315 AWSなんもわからん🥲
chiilog
2
180
Codex CLI でつくる、Issue から merge までの開発フロー
amata1219
0
280
ネイティブアプリとWebフロントエンドのAPI通信ラッパーにおける共通化の勘所
suguruooki
0
230
それはエンジニアリングの糧である:AI開発のためにAIのOSSを開発する現場より / It serves as fuel for engineering: insights from the field of developing open-source AI for AI development.
nrslib
1
820
Featured
See All Featured
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
64
53k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
310
Making Projects Easy
brettharned
120
6.6k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
370
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
390
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.3k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Six Lessons from altMBA
skipperchong
29
4.2k
Typedesign – Prime Four
hannesfritz
42
3k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
120
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