domain driven design & nosql

Post on 29-Aug-2014

271 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

A presentation from Lucas Dohmen about Domain Driven Design, NoSQL and how they can work together.

TRANSCRIPT

Escaping the Tower of BabelDomain Driven Design & NoSQL

class SpaceShuttle end !class Astronaut end

vI

Domain Driven Design

• Find an ubiquitous language

• The language is based on the domain

• Every person involved understands the language

Eric Evans

Iterative DevelopmentClose 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

Iv

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 with arbitrary attributes

• Tuples containing other Tuples

Space Shuttle

Parts

Space Shuttle

Parts

Document Store

Itype: spaceshuttle

vname: 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

Iv

Ownership

name: alice…

type: spaceshuttle

Itype: spaceshuttle

vname: 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

moonglummoonbeamlabs

arangodb.org

top related