SlideShare a Scribd company logo
Should I use a document
database?
Elemar Júnior
@elemarjr
elemarjr@ravendb.net
elemarjr.com
Hello, I am Elemar Jr
I am Microsoft MVP
I love to learn new things
I love compilers
I love to write compilers
I love Roslyn
I love Computer
Graphics
Should I use a document database?
Should I use a document database?
Should I use a document database?
But ... again, Should I use a
Document Database?
Let me tell you a story...
A long time ago (2002) in a galaxy far far
away (Caxias do Sul, RS – Brazil) ...
A brave team started to write a new version, from the scratch, of a
popular Brazilian software
Should I use a document database?
Should I use a document database?
How to store furniture information?
4
.mdb
Why not?
.mdb
Schema?
Should I use a document database?
Some common properties
... but a lot of specific properties
We could use
one table with nullable fields (like Sharepoint
AllUserData Table)
Sounds Strange!Right?
We could use
some complex relational database structure
Complex!Better?
.mdb
<xml
/>2002, remember?
XML is
Flexible (no Schema)
Perfect!
XML is almost
Human-readable
Good!
XML is
“DDD-Friendly”
Documents XML is are
“DDD-Friendly”
Entity
Value-Type
XML is
“DDD-Friendly”
Domain-Driven
Design
by Eric Evans (2004)
2002
.NET history
DDD means (2002)
“Document-Driven Design”
Entity
Value-Type
DDD means (2002)
“Document-Driven Design”
JSON would be better
Primitive types support
Should I use a document database?
Should I use a document database?
Documents Collections
reference
flexible data types
Quick access using an
Index
0
1
2
3
4
Easy Sharding
0
1
2
3
4
Easy Hashing
0
1
2
3
4
#MD5
#MD5
Easy Caching
0
1
2
3
4
#MD5
#MD5
Easy Caching
Azure BLOB
Desktop
Desktop
Desktop
NoSQL is not new ...
NoSQL is NoNEW ...
Coming back to the original
question...
again, Should I use a
Document Database?
It depends...
Do you need a flexible schema?
BETTER QUESTION
Is it an opportunity?
What about event sourcing?
What about CQRS?
Do you need to scale?
What about sharding?
What about caching?
What about replication?
Today, we have RavenDB!
RavenDB supports transactions!
Querying is easy with RavenDB
again, Should I use a
Document Database?
Why not!?
Thank you!
Should I use a document
database?
Elemar Júnior
@elemarjr
elemarjr@ravendb.net
elemarjr.com

More Related Content

PDF
Know thy cost (or where performance problems lurk)
Oren Eini
 
PPTX
RavenDB 3.5
Oren Eini
 
PDF
Building Codealike: a journey into the developers analytics world
Oren Eini
 
PPTX
Lessons from the Trenches - Building Enterprise Applications with RavenDB
Oren Eini
 
KEY
Why ruby and rails
Reuven Lerner
 
PPTX
Drop acid
Mike Feltman
 
PDF
AWS Cloud experience concepts tips and tricks
Dirk Harms-Merbitz
 
PPTX
Rust is for Robots!
Andy Grove
 
Know thy cost (or where performance problems lurk)
Oren Eini
 
RavenDB 3.5
Oren Eini
 
Building Codealike: a journey into the developers analytics world
Oren Eini
 
Lessons from the Trenches - Building Enterprise Applications with RavenDB
Oren Eini
 
Why ruby and rails
Reuven Lerner
 
Drop acid
Mike Feltman
 
AWS Cloud experience concepts tips and tricks
Dirk Harms-Merbitz
 
Rust is for Robots!
Andy Grove
 

What's hot (20)

PDF
Where do I put this data? #lessql
Ezra Zygmuntowicz
 
PDF
Rust is for "Big Data"
Andy Grove
 
PPTX
Tips & Tricks SQL in the City Seattle 2014
Ike Ellis
 
PPTX
RavenDB in the wild
Mauro Servienti
 
PPTX
RavenDB Presentation
Mark Rodseth
 
PPTX
Webinar: Capacity Planning
MongoDB
 
PPTX
Dropping ACID: Wrapping Your Mind Around NoSQL Databases
Kyle Banerjee
 
PDF
[Rakuten TechConf2014] [C-2] Big Data for eBooks and eReaders
Rakuten Group, Inc.
 
PPTX
Compression talk
Ilya Ganelin
 
KEY
MongoDB Administration ~ Kevin Hanson
hungarianhc
 
PPTX
Your Guide to Streaming - The Engineer's Perspective
Ilya Ganelin
 
PPTX
Porting ASP.NET applications to Windows Azure
Gunnar Peipman
 
PPTX
Day 4 - Models
Barry Jones
 
KEY
MongoDB Administration 20110922
radiocats
 
PDF
SAP Open Source meetup/Speedment - Palo Alto 2015
Speedment, Inc.
 
PDF
Introduction to Cassandra - Denver
Jon Haddad
 
PDF
No More Cowboy Coding: Modern WordPress Development Workflow That Scales
Tom Howard
 
PDF
Writing Space and the Cassandra NoSQL DBMS
DataStax Academy
 
PDF
Karmasphere Studio for Hadoop
Hadoop User Group
 
PPTX
Hadoop in a Windows Shop - CHUG - 20120416
Chicago Hadoop Users Group
 
Where do I put this data? #lessql
Ezra Zygmuntowicz
 
Rust is for "Big Data"
Andy Grove
 
Tips & Tricks SQL in the City Seattle 2014
Ike Ellis
 
RavenDB in the wild
Mauro Servienti
 
RavenDB Presentation
Mark Rodseth
 
Webinar: Capacity Planning
MongoDB
 
Dropping ACID: Wrapping Your Mind Around NoSQL Databases
Kyle Banerjee
 
[Rakuten TechConf2014] [C-2] Big Data for eBooks and eReaders
Rakuten Group, Inc.
 
Compression talk
Ilya Ganelin
 
MongoDB Administration ~ Kevin Hanson
hungarianhc
 
Your Guide to Streaming - The Engineer's Perspective
Ilya Ganelin
 
Porting ASP.NET applications to Windows Azure
Gunnar Peipman
 
Day 4 - Models
Barry Jones
 
MongoDB Administration 20110922
radiocats
 
SAP Open Source meetup/Speedment - Palo Alto 2015
Speedment, Inc.
 
Introduction to Cassandra - Denver
Jon Haddad
 
No More Cowboy Coding: Modern WordPress Development Workflow That Scales
Tom Howard
 
Writing Space and the Cassandra NoSQL DBMS
DataStax Academy
 
Karmasphere Studio for Hadoop
Hadoop User Group
 
Hadoop in a Windows Shop - CHUG - 20120416
Chicago Hadoop Users Group
 
Ad

Similar to Should I use a document database? (20)

PPTX
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 2
Marco Gralike
 
PPTX
ORM Methodology
Ahmed Gomaa
 
PPTX
C*ollege Credit: Keep the DB, Lose the A
DataStax
 
PDF
MongoDB is the MashupDB
Wynn Netherland
 
PPT
SQL or NoSQL, that is the question!
Andraz Tori
 
PDF
CMF: a pain in the F @ PHPDay 05-14-2011
Alessandro Nadalin
 
PDF
A Brave new object store world
Effi Ofer
 
PPTX
Explore the Cosmos (DB) with .NET Core 2.0
Jeremy Likness
 
PDF
NoSQL for great good [hanoi.rb talk]
Huy Do
 
PPTX
CRUD Operation of images through XML
Anshudha Maheshwari
 
PPT
20120606 Lazy Programmers Write Self-Modifying Code /or/ Dealing with XML Ord...
David Horvath
 
PPT
NO SQL: What, Why, How
Igor Moochnick
 
PPTX
NoSQL
kirandanduprolu
 
PPTX
The Challenges of Bringing Machine Learning to the Masses
Alice Zheng
 
PDF
Polyglot Architecture: A Rational Approach to Software Design
kompalg
 
PPTX
Lessons Learned Migrating 2+ Billion Documents at Craigslist
Jeremy Zawodny
 
PDF
MongoDB and AWS Best Practices
MongoDB
 
ODP
MySQL And Search At Craigslist
Jeremy Zawodny
 
PPTX
The GAME that never was
Rogan Flitton
 
KEY
DynamoDB Gluecon 2012
Appirio
 
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 2
Marco Gralike
 
ORM Methodology
Ahmed Gomaa
 
C*ollege Credit: Keep the DB, Lose the A
DataStax
 
MongoDB is the MashupDB
Wynn Netherland
 
SQL or NoSQL, that is the question!
Andraz Tori
 
CMF: a pain in the F @ PHPDay 05-14-2011
Alessandro Nadalin
 
A Brave new object store world
Effi Ofer
 
Explore the Cosmos (DB) with .NET Core 2.0
Jeremy Likness
 
NoSQL for great good [hanoi.rb talk]
Huy Do
 
CRUD Operation of images through XML
Anshudha Maheshwari
 
20120606 Lazy Programmers Write Self-Modifying Code /or/ Dealing with XML Ord...
David Horvath
 
NO SQL: What, Why, How
Igor Moochnick
 
The Challenges of Bringing Machine Learning to the Masses
Alice Zheng
 
Polyglot Architecture: A Rational Approach to Software Design
kompalg
 
Lessons Learned Migrating 2+ Billion Documents at Craigslist
Jeremy Zawodny
 
MongoDB and AWS Best Practices
MongoDB
 
MySQL And Search At Craigslist
Jeremy Zawodny
 
The GAME that never was
Rogan Flitton
 
DynamoDB Gluecon 2012
Appirio
 
Ad

More from Oren Eini (8)

PPTX
Staying friendly with the gc
Oren Eini
 
PPTX
Rebooting design in RavenDB
Oren Eini
 
PPTX
Implementing CQRS and Event Sourcing with RavenDB
Oren Eini
 
PDF
Delving into Documents with Data Subscriptions
Oren Eini
 
PPTX
Zapping ever faster: how Zap sped up by two orders of magnitude using RavenDB
Oren Eini
 
PPTX
RavenDB embedded at massive scales
Oren Eini
 
PDF
RavenDB for modern web apps
Oren Eini
 
PPTX
RavenDB 4.0
Oren Eini
 
Staying friendly with the gc
Oren Eini
 
Rebooting design in RavenDB
Oren Eini
 
Implementing CQRS and Event Sourcing with RavenDB
Oren Eini
 
Delving into Documents with Data Subscriptions
Oren Eini
 
Zapping ever faster: how Zap sped up by two orders of magnitude using RavenDB
Oren Eini
 
RavenDB embedded at massive scales
Oren Eini
 
RavenDB for modern web apps
Oren Eini
 
RavenDB 4.0
Oren Eini
 

Recently uploaded (20)

PPTX
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
PDF
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
PDF
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
PDF
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
PDF
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
PPTX
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
PDF
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
PDF
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
PDF
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
PPTX
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
PDF
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
PPTX
The Future of AI & Machine Learning.pptx
pritsen4700
 
PDF
Software Development Methodologies in 2025
KodekX
 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
PDF
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
PPTX
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
PPTX
Simple and concise overview about Quantum computing..pptx
mughal641
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PDF
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
PDF
Brief History of Internet - Early Days of Internet
sutharharshit158
 
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
The Future of AI & Machine Learning.pptx
pritsen4700
 
Software Development Methodologies in 2025
KodekX
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
Simple and concise overview about Quantum computing..pptx
mughal641
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
Brief History of Internet - Early Days of Internet
sutharharshit158
 

Should I use a document database?