why i miss mongodb

35
W HY I MISS Barcelona MUG 05/03/2015 @pablitoev56

Upload: pablo-enfedaque

Post on 15-Jul-2015

127 views

Category:

Engineering


3 download

TRANSCRIPT

Page 1: Why I miss MongoDB

WHY I MISS Barcelona MUG 05/03/2015 @pablitoev56

Page 2: Why I miss MongoDB

WHY I MISS MONGODB || BARCELONA MUG || @pablitoev56

ABOUT ME

•  Pablo Enfedaque Vidal

•  Senior Software Engineer at Skyscanner

•  More than 4 years working with MongoDB

•  I love it!

Page 3: Why I miss MongoDB

WHY I MISS MONGODB || BARCELONA MUG || @pablitoev56

MY LOVE STORY

I started with MongoDB 0.8

Page 4: Why I miss MongoDB

WHY I MISS MONGODB || BARCELONA MUG || @pablitoev56

MY LOVE STORY

It was not mature enough – I left it

Page 5: Why I miss MongoDB

WHY I MISS MONGODB || BARCELONA MUG || @pablitoev56

MY LOVE STORY

I re-started with MongoDB 1.6

Page 6: Why I miss MongoDB

WHY I MISS MONGODB || BARCELONA MUG || @pablitoev56

MY LOVE STORY

And never left it

Page 7: Why I miss MongoDB

WHY I MISS MONGODB || BARCELONA MUG || @pablitoev56

MY LOVE STORY

Until 6 months ago

Page 8: Why I miss MongoDB

WHY I MISS MONGODB || BARCELONA MUG || @pablitoev56

MY LOVE STORY

And I do really miss it a lot

Page 9: Why I miss MongoDB

WHY I MISS MONGODB || BARCELONA MUG || @pablitoev56

MY LOVE STORY

And I will explain you why…

Page 10: Why I miss MongoDB

WHY I MISS MONGODB || BARCELONA MUG || @pablitoev56

DYNAMIC SCHEMA AKA. FLEXIBLE SCHEMA

Page 11: Why I miss MongoDB

WHY I MISS MONGODB || BARCELONA MUG || @pablitoev56

DYNAMIC SCHEMA

Page 12: Why I miss MongoDB

WHY I MISS MONGODB || BARCELONA MUG || @pablitoev56

DYNAMIC SCHEMA

Databases, collections and attributes creation on demand

Really useful when running tests and

while developing

Page 13: Why I miss MongoDB

WHY I MISS MONGODB || BARCELONA MUG || @pablitoev56

DYNAMIC SCHEMA

Attributes don’t have a pre-defined or fixed data type

Painless schema migrations

Faster development

Page 14: Why I miss MongoDB

WHY I MISS MONGODB || BARCELONA MUG || @pablitoev56

DYNAMIC SCHEMA – BONUS!

MongoDB + Dynamic Language = PERFECT LOVE STORY

Page 15: Why I miss MongoDB

WHY I MISS MONGODB || BARCELONA MUG || @pablitoev56

DYNAMIC SCHEMA

Page 16: Why I miss MongoDB

WHY I MISS MONGODB || BARCELONA MUG || @pablitoev56

ADVANCED DATA STRUCTURES AKA. EMBEDDED DATA MODELS

Page 17: Why I miss MongoDB

WHY I MISS MONGODB || BARCELONA MUG || @pablitoev56

ADVANCED DATA STRUCTURES

Page 18: Why I miss MongoDB

WHY I MISS MONGODB || BARCELONA MUG || @pablitoev56

ADVANCED DATA STRUCTURES

Nested documents, arrays, arrays of nested documents… up to 16Mb

Proper objects mapping to documents No clash of object oriented world vs.

relational world

Page 19: Why I miss MongoDB

WHY I MISS MONGODB || BARCELONA MUG || @pablitoev56

ADVANCED DATA STRUCTURES

No JOIN, no INNER JOIN, no LEFT OUTTER JOIN…

No JOIN? Yeah! You don't need them

Denormalization For The Win!

Page 20: Why I miss MongoDB

WHY I MISS MONGODB || BARCELONA MUG || @pablitoev56

ADVANCED DATA STRUCTURES

Page 21: Why I miss MongoDB

WHY I MISS MONGODB || BARCELONA MUG || @pablitoev56

THE API AKA. QUERY SYNTAX

Page 22: Why I miss MongoDB

WHY I MISS MONGODB || BARCELONA MUG || @pablitoev56

THE API

Page 23: Why I miss MongoDB

WHY I MISS MONGODB || BARCELONA MUG || @pablitoev56

THE API

Neat and simple yet effective and powerful API

Human-friendly API

Yeah, scary at first glance, but with a soft learning curve

Page 24: Why I miss MongoDB

WHY I MISS MONGODB || BARCELONA MUG || @pablitoev56

THE API

Page 25: Why I miss MongoDB

WHY I MISS MONGODB || BARCELONA MUG || @pablitoev56

THE API

Logic out of the DB, in the code!

Power to the developers! Easier to test and debug

Page 26: Why I miss MongoDB

WHY I MISS MONGODB || BARCELONA MUG || @pablitoev56

OFFICIAL DRIVERS

Page 27: Why I miss MongoDB

WHY I MISS MONGODB || BARCELONA MUG || @pablitoev56

OFFICIAL DRIVERS

Page 28: Why I miss MongoDB

WHY I MISS MONGODB || BARCELONA MUG || @pablitoev56

OFFICIAL DRIVERS

Official drivers for 11 languages

Fully featured, high performance Painless installation

Amazing support and maintenance

Page 29: Why I miss MongoDB

WHY I MISS MONGODB || BARCELONA MUG || @pablitoev56

OFFICIAL DRIVERS

Page 30: Why I miss MongoDB

WHY I MISS MONGODB || BARCELONA MUG || @pablitoev56

OFFICIAL DRIVERS

Page 31: Why I miss MongoDB

WHY I MISS MONGODB || BARCELONA MUG || @pablitoev56

OFFICIAL DRIVERS

Consistent API syntax, but also aligned with the language style

Easy transition between languages

Faster learning

Page 32: Why I miss MongoDB

WHY I MISS MONGODB || BARCELONA MUG || @pablitoev56

OFFICIAL DRIVERS

Page 33: Why I miss MongoDB

WHY I MISS MONGODB || BARCELONA MUG || @pablitoev56

PERFORMANCE

Page 34: Why I miss MongoDB

WHY I MISS MONGODB || BARCELONA MUG || @pablitoev56

PERFORMANCE

Came for the performance, stayed for everything else

Because never had to worry for the

performance again!

Page 35: Why I miss MongoDB

WHY I MISS MONGODB || BARCELONA MUG || @pablitoev56

QUESTIONS? I HOPE YOU ENJOYED!