Slide 1

Slide 1 text

Escaping the Tower of Babel Domain Driven Design & NoSQL

Slide 2

Slide 2 text

Escaping the Tower of Babel Domain Driven Design & NoSQL

Slide 3

Slide 3 text

class SpaceShuttle end ! class Astronaut end v I

Slide 4

Slide 4 text

Domain Driven Design • Find an ubiquitous language • Every person involved understands the language • The language is based on the domain Eric Evans

Slide 5

Slide 5 text

Iterative Development Close relationship between devs & domain experts Domain Driven Design

Slide 6

Slide 6 text

Hi. I’m Lucas.

Slide 7

Slide 7 text

From Köln / Cologne

Slide 8

Slide 8 text

Dom / Cathedral

Slide 9

Slide 9 text

Hohenzollernbrücke

Slide 10

Slide 10 text

I work for ArangoDB GmbH

Slide 11

Slide 11 text

We build ArangoDB

Slide 12

Slide 12 text

ArangoDB is an Open Source NoSQL Database

Slide 13

Slide 13 text

But what is NoSQL?

Slide 14

Slide 14 text

SQL NoSQL

Slide 15

Slide 15 text

SQL Not only SQL

Slide 16

Slide 16 text

What is NoSQL? What is SQL? What is a relational algebra? What is a relation? Not SQL A relational algebra An algebra on relations

Slide 17

Slide 17 text

{(Alice, 1983-07-1, 1) (Bob, 2014-03-19, 2)}

Slide 18

Slide 18 text

name birthday city Alice 1983-07-1 1 Bob 2014-03-19 2

Slide 19

Slide 19 text

Disconnect I v Ownership name: alice… type: spaceshuttle

Slide 20

Slide 20 text

Entity Value Object Service Identified by ID Value What it does State Mutable Immutable Stateless

Slide 21

Slide 21 text

+ Factories + Repositories + Aggregates

Slide 22

Slide 22 text

DENORMALIZATION

Slide 23

Slide 23 text

Lift the restriction • Tuples containing other Tuples • Tuples with arbitrary attributes

Slide 24

Slide 24 text

Space Shuttle Parts

Slide 25

Slide 25 text

Space Shuttle Parts Document Store

Slide 26

Slide 26 text

I type: spaceshuttle v name: alice astronaut: 1 spaceshuttle: 3

Slide 27

Slide 27 text

JOINS

Slide 28

Slide 28 text

Alice Ownership SpaceShuttle

Slide 29

Slide 29 text

Alice Ownership SpaceShuttle Graph Database

Slide 30

Slide 30 text

Alice Ownership SpaceShuttle Parts

Slide 31

Slide 31 text

Alice Ownership SpaceShuttle Parts I’m a document!

Slide 32

Slide 32 text

Alice Ownership SpaceShuttle Parts Me too!

Slide 33

Slide 33 text

Alice Ownership SpaceShuttle Parts

Slide 34

Slide 34 text

Alice Ownership SpaceShuttle Parts Multi Model Database

Slide 35

Slide 35 text

Disconnect I v Ownership name: alice… type: spaceshuttle

Slide 36

Slide 36 text

I type: spaceshuttle v name: alice Ownership since: 2003

Slide 37

Slide 37 text

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