Slide 1

Slide 1 text

Escaping the Tower of Babel Domain Driven Design & NoSQL

Slide 2

Slide 2 text

class SpaceShuttle end ! class Astronaut end v I

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

Hi. I’m Lucas.

Slide 6

Slide 6 text

I work for ArangoDB GmbH

Slide 7

Slide 7 text

We build ArangoDB

Slide 8

Slide 8 text

ArangoDB is an Open Source NoSQL Database

Slide 9

Slide 9 text

But what is NoSQL?

Slide 10

Slide 10 text

SQL NoSQL

Slide 11

Slide 11 text

SQL Not only SQL

Slide 12

Slide 12 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 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

Disconnect I v Ownership name: alice… type: spaceshuttle

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

+ Factories + Repositories + Aggregates

Slide 18

Slide 18 text

DENORMALIZATION

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

Space Shuttle Parts

Slide 21

Slide 21 text

Space Shuttle Parts Document Store

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

JOINS

Slide 24

Slide 24 text

Alice Ownership SpaceShuttle

Slide 25

Slide 25 text

Alice Ownership SpaceShuttle Graph Database

Slide 26

Slide 26 text

Alice Ownership SpaceShuttle Parts

Slide 27

Slide 27 text

Alice Ownership SpaceShuttle Parts I’m a document!

Slide 28

Slide 28 text

Alice Ownership SpaceShuttle Parts Me too!

Slide 29

Slide 29 text

Alice Ownership SpaceShuttle Parts

Slide 30

Slide 30 text

Alice Ownership SpaceShuttle Parts Multi Model Database

Slide 31

Slide 31 text

Disconnect I v Ownership name: alice… type: spaceshuttle

Slide 32

Slide 32 text

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

Slide 33

Slide 33 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