67
Should I use a document database? Elemar Júnior @elemarjr [email protected] elemarjr.com

Should I use a document database?

Embed Size (px)

Citation preview

Page 1: Should I use a document database?

Should I use a document database?

Elemar Júnior@elemarjr

[email protected]

Page 2: Should I use a document database?

Hello, I am Elemar Jr

Page 3: Should I use a document database?

I am Microsoft MVP

Page 4: Should I use a document database?

I love to learn new things

Page 5: Should I use a document database?

I love compilers

Page 6: Should I use a document database?

I love to write compilers

Page 7: Should I use a document database?

I love Roslyn

Page 8: Should I use a document database?

I love Computer Graphics

Page 9: Should I use a document database?
Page 10: Should I use a document database?
Page 11: Should I use a document database?
Page 12: Should I use a document database?

But ... again, Should I use a Document Database?

Page 13: Should I use a document database?

Let me tell you a story...

Page 14: Should I use a document database?

A long time ago (2002) in a galaxy far far away (Caxias do Sul, RS –

Brazil) ...

Page 15: Should I use a document database?

A brave team started to write a new version, from the scratch, of a popular Brazilian software

Page 16: Should I use a document database?
Page 17: Should I use a document database?
Page 18: Should I use a document database?

How to store furniture information?

Page 19: Should I use a document database?

4.mdbWhy not?

Page 20: Should I use a document database?

.mdb

Page 21: Should I use a document database?

Schema?

Page 22: Should I use a document database?
Page 23: Should I use a document database?

Some common properties

Page 24: Should I use a document database?

... but a lot of specific properties

Page 25: Should I use a document database?

We could use one table with nullable fields (like Sharepoint

AllUserData Table)

Sounds Strange!Right?

Page 26: Should I use a document database?

We could use some complex relational database structure

Complex!Better?

Page 27: Should I use a document database?

.mdb

Page 28: Should I use a document database?

<xml />2002, remember?

Page 29: Should I use a document database?

XML isFlexible (no Schema)

Perfect!

Page 30: Should I use a document database?

XML is almostHuman-readable

Good!

Page 31: Should I use a document database?

XML is “DDD-Friendly”

Page 32: Should I use a document database?

Documents XML is are“DDD-Friendly”

Enti

tyValue-Type

XML is “DDD-Friendly”

Page 33: Should I use a document database?

Domain-Driven Design by Eric Evans (2004)2002

Page 34: Should I use a document database?

.NET history

Page 35: Should I use a document database?

DDD means (2002)“Document-Driven Design”

Enti

tyValue-Type

Page 36: Should I use a document database?

DDD means (2002)“Document-Driven Design”

Page 37: Should I use a document database?

JSON would be betterPrimitive types support

Page 38: Should I use a document database?
Page 39: Should I use a document database?
Page 40: Should I use a document database?

Documents Collections

Page 41: Should I use a document database?

reference

flexible data types

Page 42: Should I use a document database?

Quick access using an Index

0

1

2

3

4

Page 43: Should I use a document database?

Easy Sharding

0

1

2

3

4

Page 44: Should I use a document database?

Easy Hashing

0

1

2

3

4

#MD5

#MD5

Page 45: Should I use a document database?

Easy Caching

0

1

2

3

4

#MD5

#MD5

Page 46: Should I use a document database?

Easy Caching

Azure BLOB

Desktop

Desktop

Desktop

Page 47: Should I use a document database?

NoSQL is not new ...

Page 48: Should I use a document database?

NoSQL is NoNEW ...

Page 49: Should I use a document database?

Coming back to the original question...

Page 50: Should I use a document database?

again, Should I use a Document Database?

Page 51: Should I use a document database?

It depends...

Page 52: Should I use a document database?

Do you need a flexible schema?

Page 53: Should I use a document database?

BETTER QUESTION

Page 54: Should I use a document database?

Is it an opportunity?

Page 55: Should I use a document database?

What about event sourcing?

Page 56: Should I use a document database?

What about CQRS?

Page 57: Should I use a document database?

Do you need to scale?

Page 58: Should I use a document database?

What about sharding?

Page 59: Should I use a document database?

What about caching?

Page 60: Should I use a document database?

What about replication?

Page 61: Should I use a document database?

Today, we have RavenDB!

Page 62: Should I use a document database?

RavenDB supports transactions!

Page 63: Should I use a document database?

Querying is easy with RavenDB

Page 64: Should I use a document database?

again, Should I use a Document Database?

Page 65: Should I use a document database?

Why not!?

Page 66: Should I use a document database?

Thank you!

Page 67: Should I use a document database?

Should I use a document database?

Elemar Júnior@elemarjr

[email protected]