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
430
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
81
Weird Parts
moonglum
0
97
Webanwendungen – Eine Frage des Stils
moonglum
0
280
AdequateJS: Where should I run my Code?
moonglum
0
62
Per Anhalter durch JavaScript
moonglum
0
170
Architectures for Modern Web Front Ends
moonglum
2
480
Per Anhalter durch JavaScript
moonglum
0
200
Architectures for Modern Web Front Ends
moonglum
0
120
AdequateJS: Wie viel JavaScript darf es denn sein?
moonglum
1
400
Other Decks in Programming
See All in Programming
State of Namespace
tagomoris
4
1.5k
ミリしらMCP勉強会
watany
4
760
PHPで書いたAPIをGoに書き換えてみた 〜パフォーマンス改善の可能性を探る実験レポート〜
koguuum
0
160
生成AIを使ったQAアプリケーションの作成 - ハンズオン補足資料
oracle4engineer
PRO
3
220
AIコーディングワークフローの試行 〜AIエージェント×ワークフローでの自動化を目指して〜
rkaga
2
3.7k
Optimizing JRuby 10
headius
0
310
Chrome Extension Techniques from Hell
moznion
1
160
Sharing features among Android applications: experience feedback
jbvincey
0
110
プロダクト横断分析に役立つ、事前集計しないサマリーテーブル設計
hanon52_
2
440
タイムゾーンの奥地は思ったよりも闇深いかもしれない
suguruooki
1
650
Amazon CloudWatchの地味だけど強力な機能紹介!
itotsum
0
160
AHC045_解説
shun_pi
0
530
Featured
See All Featured
Scaling GitHub
holman
459
140k
Embracing the Ebb and Flow
colly
85
4.6k
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Making the Leap to Tech Lead
cromwellryan
133
9.2k
Into the Great Unknown - MozCon
thekraken
37
1.7k
Building Flexible Design Systems
yeseniaperezcruz
329
38k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
13
1.4k
Designing for humans not robots
tammielis
252
25k
We Have a Design System, Now What?
morganepeng
52
7.5k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.6k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
227
22k
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