![Page 1: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/1.jpg)
© Zühlke 2013
Michael Lehmann & Roman Kuczynski
Polyglot Persistence with NoSQL Advanced software architecture by using multiple persistence technologies
19. September 2013
![Page 2: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/2.jpg)
SELECT * FROM dbo.Presentation WHERE Title LIKE 'Polyglot pers%'
![Page 3: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/3.jpg)
http://mechiz.deviantart.com/art/India-32-327938771
Our holy cow!
![Page 4: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/4.jpg)
http://www.deviantart.com/art/swiss-army-knife-185060119
One size fits all
![Page 5: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/5.jpg)
Michael Lehmann @lehmamic
Senior Software Engineer @Zühlke since 2012
.Net enterprise and cloud applications
Roman Kuczynski @qtschi
Senior Software Engineer @Zühlke since 2011
Data(base) architectures, BI and Big Data
![Page 6: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/6.jpg)
Borat @BoratNoSQL
Why should I change? It worked for me until now!
![Page 7: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/7.jpg)
http://memod.deviantart.com/art/Racing-Lights-12889655
Listen to the business
![Page 8: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/8.jpg)
RDBMS
Volume
![Page 9: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/9.jpg)
RDBMS
Volume
Velocity
![Page 10: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/10.jpg)
RDBMS
Volume
Velocity
Variability
![Page 11: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/11.jpg)
RDBMS
Volume
Agility Velocity
Variability
![Page 12: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/12.jpg)
Borat @BoratNoSQL
Sounds plausible, but what options do we have?
![Page 13: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/13.jpg)
#NoSQL
![Page 14: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/14.jpg)
Increasing performance through scale out
![Page 15: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/15.jpg)
Roger Federer
Rafael Nadal
Andy Murray
N. Djokovic
Scaling by sharding
![Page 16: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/16.jpg)
Roger Federer Roger Federer
Scaling by replication
Roger Federer
N. Djokovic N. Djokovic N. Djokovic
![Page 17: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/17.jpg)
Impedance mismatch using relational databases
public class BlogPost { public int Id { get; set; } public string Content { get; set; } public List<string> Tags { get; set; } }
BlogPost - Id (int) - Content (varchar)
Tag - Id (int) - BlogPostId (int) - Name (varchar)
![Page 18: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/18.jpg)
Design for the relational model
public class BlogPost { public int Id { get; set;} public List<Tag> Tags { get; set; } } public class Tag { public int Id { get; set; } public PlogPost BelongsTo { get; set; } public string Name { get; set; } }
![Page 19: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/19.jpg)
NoSQL databases increase productivity
var post = new BlogPost { Id = 1, Content = "Any text content", Tags = new [] { "NoSQL", "Cloud", "PolyglotPersistence" } }; collection.Insert(post);
![Page 20: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/20.jpg)
Data integrity cannot be enforced
![Page 21: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/21.jpg)
NoSQL databases are eventual consistent
![Page 22: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/22.jpg)
NY ZH
Free Free
We look for a hotel room
![Page 23: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/23.jpg)
NY ZH
booked Free
We book the room
![Page 24: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/24.jpg)
NY ZH
booked Free Inconsistency
Inconsistency window
![Page 25: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/25.jpg)
NY ZH
booked Free Inconsistency
Someone else books the same room
![Page 26: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/26.jpg)
NY ZH
booked booked Inconsistency
Conflict!
![Page 27: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/27.jpg)
Why not handle such cases by business?
![Page 28: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/28.jpg)
performance consistency
![Page 29: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/29.jpg)
What do we have in our toolbox?
![Page 30: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/30.jpg)
A lot of database products
![Page 31: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/31.jpg)
Borat @BoratNoSQL
I feel swamped, how can I differentiate these products?
![Page 32: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/32.jpg)
Key-value stores
![Page 33: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/33.jpg)
Document stores
![Page 34: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/34.jpg)
{ "playerId": 1, "firstName": "Roger", "lastName": "Federer", "ranking": "#1", "address": { "city": "Wollerau" } "sponsors“: [ { "id": 1, "name": "Nike" "amount": "16’000 SFR" }, { "id": 2, "name": "Lindt" "amount": "5’000 SFR" }, { "id": 3, "name": "Credit Suisse" "amount": “13’000 SFR" }] }
The document store data model
![Page 35: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/35.jpg)
Column-family stores
![Page 36: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/36.jpg)
Row 1 FirstName:Roger LastName:Federer
Row 2 FirstName:Andy LastName:Murray
Row 3 NickName:Rafa LastName:Nadal
Row n-1 Fruit:Apple Price:1.40$
Row n Fruit:Cherry Price:2.60$
Column-Family: Players Column-Family: Fruits
The column-family data model
![Page 37: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/37.jpg)
Graph databases
![Page 38: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/38.jpg)
The graph data model
Node [1] Name = ‘John’
Node [2] Name = ‘Sara’
Node [5] Name = ‘Joe’
Node [3] Name = ‘Maria’
Node [4] Name = ‘Steve’
friend friend
friend friend
![Page 39: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/39.jpg)
![Page 40: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/40.jpg)
http://vallo29.deviantart.com/art/The-choice-150871274
Decisions, decisions…
![Page 41: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/41.jpg)
Borat @BoratNoSQL
With every database I have to take tradeoffs intoaccount,Idon’twanttochooseonlyone!
![Page 42: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/42.jpg)
Pol·y·glot – Adjective Knowing or using several languages
Per·sist·ence – Noun The continued or prolonged existence of something
![Page 43: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/43.jpg)
Retail Store
Recomendations
Neo4J
Product Catalog
Raven DB
Financial Data
MSSQL
Shopping Cart
Redis
Polyglot persistence illustrated
![Page 44: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/44.jpg)
Borat @BoratNoSQL
Sounds great! But where is the catch?
![Page 45: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/45.jpg)
We need appropriate skills
![Page 46: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/46.jpg)
http://www.deviantart.com/art/architecture-71406568
Invest in software architecture
![Page 47: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/47.jpg)
Integration databases have been used for years
Database
Application A
Application B
![Page 48: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/48.jpg)
Polyglot persistence doesn’t work here
Database 1
Application A
Application B
Database 2
![Page 49: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/49.jpg)
Application databases do not share it’s data
Database 1
Application A
Application B
Database 2
![Page 50: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/50.jpg)
Borat @BoratNoSQL
Fine! But I have not only one
application.
![Page 51: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/51.jpg)
Application database with SOA
Database 1
Application A
Application B
Database 2
Service
![Page 52: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/52.jpg)
It’s all about layers
![Page 53: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/53.jpg)
Well known layers
Presentation Layer
Domain Layer
Resource Access Layer ( Data Access Layer)
Resources
![Page 54: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/54.jpg)
Common data tier design
Presentation
Domain
DAL
Resources RDBMS
Search
Transactions
Caching
Blobs
Triggers
Reporting
User Interface
Relational-Object Object-Relational
![Page 55: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/55.jpg)
http://gundross.deviantart.com/art/Chair-72928743
The truth of reusability
![Page 56: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/56.jpg)
Data access with reusable and seamless services
Presentation
Domain
DAL
Resources RDBMS
Search
Transactions
Caching
Blobs
Triggers
Reporting
User Interface
Relational-Object Object-Relational
Presentation
Domain
DAL
Resources
User Interface
Search
Transactions
Caching
Blobs
Batch
Reporting
Key-Value Document RDBMS
![Page 57: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/57.jpg)
Putting all together
Key-Value Document RDBMS
Search
Caching
Reporting
Domain Services
User Interface
Database Tier
Middle Tier
![Page 58: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/58.jpg)
Use the right tool!
![Page 59: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/59.jpg)
Resources
NoSQL Distilled Author: Martin Fowler, Pramod J. Sadalage ISBN: 978-0321826626
Making Sense of NoSQL Author: Dan McCreary, Ann Kelly ISBN: 978-1617291074
Links http://nosql-database.org/ http://en.wikipedia.org/wiki/NoSQL
![Page 60: Polyglot Persistence with NoSQLnosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/...Polyglot persistence doesn’t work here Database 1 Application A Application B 2 Application](https://reader033.vdocument.in/reader033/viewer/2022043011/5fa347a512a9e7780a1856f2/html5/thumbnails/60.jpg)
Thank you!