SlideShare a Scribd company logo
DevFest 
Tugdual Grall 
Technical Evangelist 
tug@mongodb.com 
@tgrall
Proud to be Polyglot! 
Tugdual Grall 
Technical Evangelist 
tug@mongodb.com 
@tgrall
Modern Applications 
• Modern Applications Must 
Manage any type of data 
Scale 
Be fault tolerant 
Adapt to change
Current Architecture 
• Mono-Technology 
• Single “language/architecture” 
• Single Database : RDBMS 
! 
• One size fits all approach 
JSP/JSF 
Services 
Messaging 
JTA 
DAO/JPA
Is it good for me? 
• Many files 
• XML, Sources, .. 
• Does Hibernate/JPA is good for all? 
• Impedance mismatch 
• Need to scale 
• from 0 to 50millions users in 6 weeks 
• How to add new features easily? 
• changing code, updating data structure, ... 
• and all this for yesterday!
One size does NOT fit all!
Look at our data….
Big Data
Big Users 
http://www.theconnectivist.com/ 
& 
Cisco
Stay up! 
. 
. 
. 
Application 
! 
Scale out 
Add more “Web” servers 
RDBMS 
! 
Scale Up 
Get bigger server 
App 
Server 
RDBMS
Scaling out RDBMS 
. 
. 
. 
App 
Server 
. 
. 
. 
Memcached 
. 
. 
. 
MySQL 
• Run Many SQL Servers 
! 
• Data could be sharded 
• Done by the application 
code 
! 
• Caching Layer
NoSQL to Scale out! 
. 
. 
. 
Application 
! 
Scale out 
Add more “Web” servers 
NoSQL 
! 
Scale Out 
Add more servers 
App 
Server 
. 
. 
. 
NoSQL
Operational vs Analytics Databases 
Applications, Interactions Warehouse, Analytics
Polyglot Persistence 
Big 
Data/Analysis Document RDBMS 
• Log 
Capture 
• Recommendations 
• Predictions 
• Ad 
Campaign 
• Products 
• User 
Profiles 
• Game 
Actions 
• Sessions 
• Shopping 
Cart 
• Financial 
Data 
• Reporting
Developer New Skills 
• Understand the pros/cons of each solutions 
– Programming API 
– How to access the data? (API, Query Languages) 
• Learn how to design data model 
– De-normalizing and duplicate data is not a problem 
• Integrate each solution to your application 
• Note: This is something you already do ! 
– Operational RDBMS and Data Warehouse
Data Service Layer 
• Wrap data call in Services 
– loosely coupled 
. 
. 
. 
App 
Server
Use Case : Personalization 
WebSite 
/ 
Application 
Personalization Database 
LogsLogs 
Data Processing 
Application 
Data
Use Case : Mobile / API 
PIM Database 
• Legacy Application 
• Product Information 
NoSQL 
• REST API 
• Product Data 
• Additional Metadata
Now 
What?
Why multiple languages? 
• Sometimes we have no choice 
– HTML/CSS/JavaScript + Server Side 
– Mobile Native Applications 
• Java/.Net are slow movers 
– Java EE 5.0 is still mainstream (2006) 
• Many languages and frameworks 
– Scala, Clojure, Groovy, Dart, Go, Ruby, Python, 
F#, Erlang, Node.js, Rails, Play!, Grails, ...
Examples 
• Realtime interaction with WebSockets : 
– Wait for Java EE 7 to supported by your IT? 
– Hack your app server and application with 
Continuation ? 
– Use Node.js and Socket.io ? 
! 
• Data Collection and Treatment? 
– Find a library? 
– Create your library? 
– Use Java 8 and Lambdas? 
– Use Scala?
Examples 
• Simple CRUD Application 
– Use the JavaEE stack with JPA and JSF? 
– Use Spring ? 
– Use tools like Play!, Grails, Rails, MEAN ?
How to chose? 
• Maturity/Supportability 
• Features Set 
• Learning Curve 
• Productivity
Polyglot Programming in Action 
• Build a new database 
– Save and retrieve data on disk 
– Cache the data on RAM 
– Build a query engine 
– Build replication and sharding 
– Build a Monitoring engine & console 
– Build a Backup/Restore Solution
Polyglot Programming in Action 
• Data access, caching, and replication 
– C/C++ is the fastest way to interact with I/O 
– Leverage existing Caching layer & I/O 
– memory-mapped file 
• Query & Indexing 
– Leverage C/C++, and expose native JS engine 
• Management 
– Web Console : Java & HTML/CSS 
– Agent : GoLang
MongoDB & MMS
Use Case : Second Screen Experience 
. 
. 
. 
Node.js 
+ 
Socket 
IO 
Play! 
ApplicaIon 
Python 
Scripts
Demonstration 
Sentiment 
Analysis
Conclusion 
• Use the good tool for the good task 
– Do not try to “hack” something when you 
have a simpler solution 
– Think about your users first... so deliver and 
get feedback 
• Learning is part of our job ! 
– And this will help you and your project 
• What about maintenance? 
– Do you think it is easier to maintain complex 
code?
Tugdual Grall 
Technical Evangelist 
tug@mongodb.com 
@tgrall 
Questions?

More Related Content

PDF
Big Data, Big Dream
PPTX
Drop acid
PDF
Building an ML Tool to predict Article Quality Scores using Delta & MLFlow
PDF
Scaling Online ML Predictions At DoorDash
PPTX
Dropping ACID: Wrapping Your Mind Around NoSQL Databases
PPTX
Building a Scalable and Modern Infrastructure at CARFAX
PDF
How Apache Spark Changed the Way We Hire People with Tomasz Magdanski
PPTX
Pyramid vs QlikView
Big Data, Big Dream
Drop acid
Building an ML Tool to predict Article Quality Scores using Delta & MLFlow
Scaling Online ML Predictions At DoorDash
Dropping ACID: Wrapping Your Mind Around NoSQL Databases
Building a Scalable and Modern Infrastructure at CARFAX
How Apache Spark Changed the Way We Hire People with Tomasz Magdanski
Pyramid vs QlikView

What's hot (20)

PDF
AI Modernization at AT&T and the Application to Fraud with Databricks
PPTX
In Memory Cahce Structure
PPTX
Pyramid Analytics vs Sisense
PPTX
Skillwise corporate presentation
PPTX
SPA vs. MPA
ODP
Bazillion New Technologies
PDF
Data Engineering Challenges - DSE Day at Bandung Institute of Technology
PPSX
Olympya web-tools 2011
PDF
Pinterest - Big Data Machine Learning Platform at Pinterest
PPTX
CakePHP, cakePHP development Company
PPTX
Inside Zalo: Developing a mobile messenger for the audience of millions - VN ...
PPTX
SQL Azure for ISUG(SQL Server Israeli User Group)
PPT
Jobs IT Softwares
KEY
SLQ vs NOSQL - friends or foes
PDF
DevCon Summit 2014 #DevelopersUnitePH: The "What" and "Why" of NoSQL by Matia...
PDF
The XML Forms Architecture
PDF
Why you really want SQL in a Real-Time Enterprise Environment
PDF
SLQ vs NOSQL - friends or foes
PDF
Sisense and Simba MongoDB Analytics Webinar
PPTX
noSQL choices
AI Modernization at AT&T and the Application to Fraud with Databricks
In Memory Cahce Structure
Pyramid Analytics vs Sisense
Skillwise corporate presentation
SPA vs. MPA
Bazillion New Technologies
Data Engineering Challenges - DSE Day at Bandung Institute of Technology
Olympya web-tools 2011
Pinterest - Big Data Machine Learning Platform at Pinterest
CakePHP, cakePHP development Company
Inside Zalo: Developing a mobile messenger for the audience of millions - VN ...
SQL Azure for ISUG(SQL Server Israeli User Group)
Jobs IT Softwares
SLQ vs NOSQL - friends or foes
DevCon Summit 2014 #DevelopersUnitePH: The "What" and "Why" of NoSQL by Matia...
The XML Forms Architecture
Why you really want SQL in a Real-Time Enterprise Environment
SLQ vs NOSQL - friends or foes
Sisense and Simba MongoDB Analytics Webinar
noSQL choices
Ad

Viewers also liked (20)

DOCX
My updated CV
PDF
Практическое применение принципа инверсии зависимостей на примере Ruby
PDF
Vadat bniya060208(2)
PPSX
Podsumowanie
DOCX
Fin200.wk2 check pointfinancialratios_davidf
PDF
Законопроект "Про наукову та науково-технічну діяльність"
PDF
QA MeetUp - Евгений Сабиров: "Рай тестировщика - миф или реальность?"
PDF
Lize de Jager - Reference Letter
PPTX
Ринат Ахметов: "Восстановление модели трехмерного объекта по видеопотоку"
PDF
Ficha 2 de 3º Música
PDF
Роман Петров - юнит-тестирование мобильных приложений на примере платформы iOS
PPTX
вольфсон борис - кайзен процесс непрерывного совершенствования
PDF
Final Year Thesis.PDF
PPSX
Unmardelendas
PDF
La niña curiosa
DOCX
Textos de estudiantes de tercer grado de secundaria (Albert Sofia)
PPT
Bienvenidos
DOCX
Pam oce-13
PDF
Babatunde Ladeinde dissertation
DOCX
muzi project
My updated CV
Практическое применение принципа инверсии зависимостей на примере Ruby
Vadat bniya060208(2)
Podsumowanie
Fin200.wk2 check pointfinancialratios_davidf
Законопроект "Про наукову та науково-технічну діяльність"
QA MeetUp - Евгений Сабиров: "Рай тестировщика - миф или реальность?"
Lize de Jager - Reference Letter
Ринат Ахметов: "Восстановление модели трехмерного объекта по видеопотоку"
Ficha 2 de 3º Música
Роман Петров - юнит-тестирование мобильных приложений на примере платформы iOS
вольфсон борис - кайзен процесс непрерывного совершенствования
Final Year Thesis.PDF
Unmardelendas
La niña curiosa
Textos de estudiantes de tercer grado de secundaria (Albert Sofia)
Bienvenidos
Pam oce-13
Babatunde Ladeinde dissertation
muzi project
Ad

Similar to Proud to be polyglot (20)

PDF
Hadoop and the Data Warehouse: Point/Counter Point
PDF
Meetup. Technologies Intro for Non-Tech People
PDF
DataOps with Project Amaterasu
PPTX
Mobile gotcha
PPTX
Understanding cloud with Google Cloud Platform
PPTX
Machine Learning for Smarter Apps - Jacksonville Meetup
PPTX
The Challenges of Bringing Machine Learning to the Masses
DOC
Sunshine consulting Mopuru Babu CV_Java_J2ee_Spring_Bigdata_Scala_Spark
DOC
Sunshine consulting mopuru babu cv_java_j2_ee_spring_bigdata_scala_Spark
PDF
(ATS6-DEV02) Web Application Strategies
PDF
In-Memory Computing - The Big Picture
PPTX
Cloud nativecomputingtechnologysupportinghpc cognitiveworkflows
PPTX
Transform your DBMS to drive engagement innovation with Big Data
PDF
Machine learning model to production
DOC
Venkata
PDF
Write Generic Code with the Tooling API
PDF
OPEN'17_4_Postgres: The Centerpiece for Modernising IT Infrastructures
PDF
Big Data Open Source Tools and Trends: Enable Real-Time Business Intelligence...
PDF
InfoSphere BigInsights - Analytics power for Hadoop - field experience
PDF
Student Industrial Training Presentation Slide
Hadoop and the Data Warehouse: Point/Counter Point
Meetup. Technologies Intro for Non-Tech People
DataOps with Project Amaterasu
Mobile gotcha
Understanding cloud with Google Cloud Platform
Machine Learning for Smarter Apps - Jacksonville Meetup
The Challenges of Bringing Machine Learning to the Masses
Sunshine consulting Mopuru Babu CV_Java_J2ee_Spring_Bigdata_Scala_Spark
Sunshine consulting mopuru babu cv_java_j2_ee_spring_bigdata_scala_Spark
(ATS6-DEV02) Web Application Strategies
In-Memory Computing - The Big Picture
Cloud nativecomputingtechnologysupportinghpc cognitiveworkflows
Transform your DBMS to drive engagement innovation with Big Data
Machine learning model to production
Venkata
Write Generic Code with the Tooling API
OPEN'17_4_Postgres: The Centerpiece for Modernising IT Infrastructures
Big Data Open Source Tools and Trends: Enable Real-Time Business Intelligence...
InfoSphere BigInsights - Analytics power for Hadoop - field experience
Student Industrial Training Presentation Slide

More from Tugdual Grall (20)

PDF
Introduction to Streaming with Apache Flink
PDF
Introduction to Streaming with Apache Flink
PDF
Fast Cars, Big Data - How Streaming Can Help Formula 1
PPTX
Lambda Architecture: The Best Way to Build Scalable and Reliable Applications!
PDF
Big Data Journey
PDF
Proud to be Polyglot - Riviera Dev 2015
PDF
Introduction to NoSQL with MongoDB - SQLi Workshop
PDF
Enabling Telco to Build and Run Modern Applications
PPTX
MongoDB and Hadoop
PDF
Drop your table ! MongoDB Schema Design
PDF
Devoxx 2014 : Atelier MongoDB - Decouverte de MongoDB 2.6
PDF
Some cool features of MongoDB
PDF
Building Your First MongoDB Application
PDF
Opensourceday 2014-iot
PDF
Neotys conference
PDF
Softshake 2013: Introduction to NoSQL with Couchbase
PDF
Introduction to NoSQL with Couchbase
PDF
Why and How to integrate Hadoop and NoSQL?
PDF
NoSQL Matters 2013 - Introduction to Map Reduce with Couchbase 2.0
PPT
Big Data Paris : Hadoop and NoSQL
Introduction to Streaming with Apache Flink
Introduction to Streaming with Apache Flink
Fast Cars, Big Data - How Streaming Can Help Formula 1
Lambda Architecture: The Best Way to Build Scalable and Reliable Applications!
Big Data Journey
Proud to be Polyglot - Riviera Dev 2015
Introduction to NoSQL with MongoDB - SQLi Workshop
Enabling Telco to Build and Run Modern Applications
MongoDB and Hadoop
Drop your table ! MongoDB Schema Design
Devoxx 2014 : Atelier MongoDB - Decouverte de MongoDB 2.6
Some cool features of MongoDB
Building Your First MongoDB Application
Opensourceday 2014-iot
Neotys conference
Softshake 2013: Introduction to NoSQL with Couchbase
Introduction to NoSQL with Couchbase
Why and How to integrate Hadoop and NoSQL?
NoSQL Matters 2013 - Introduction to Map Reduce with Couchbase 2.0
Big Data Paris : Hadoop and NoSQL

Recently uploaded (20)

PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
KodekX | Application Modernization Development
PDF
Modernizing your data center with Dell and AMD
PPTX
Big Data Technologies - Introduction.pptx
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
cuic standard and advanced reporting.pdf
NewMind AI Weekly Chronicles - August'25 Week I
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
“AI and Expert System Decision Support & Business Intelligence Systems”
Agricultural_Statistics_at_a_Glance_2022_0.pdf
The AUB Centre for AI in Media Proposal.docx
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Dropbox Q2 2025 Financial Results & Investor Presentation
Digital-Transformation-Roadmap-for-Companies.pptx
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Spectral efficient network and resource selection model in 5G networks
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
KodekX | Application Modernization Development
Modernizing your data center with Dell and AMD
Big Data Technologies - Introduction.pptx
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Building Integrated photovoltaic BIPV_UPV.pdf
cuic standard and advanced reporting.pdf

Proud to be polyglot

  • 1. DevFest Tugdual Grall Technical Evangelist tug@mongodb.com @tgrall
  • 2. Proud to be Polyglot! Tugdual Grall Technical Evangelist tug@mongodb.com @tgrall
  • 3. Modern Applications • Modern Applications Must Manage any type of data Scale Be fault tolerant Adapt to change
  • 4. Current Architecture • Mono-Technology • Single “language/architecture” • Single Database : RDBMS ! • One size fits all approach JSP/JSF Services Messaging JTA DAO/JPA
  • 5. Is it good for me? • Many files • XML, Sources, .. • Does Hibernate/JPA is good for all? • Impedance mismatch • Need to scale • from 0 to 50millions users in 6 weeks • How to add new features easily? • changing code, updating data structure, ... • and all this for yesterday!
  • 6. One size does NOT fit all!
  • 7. Look at our data….
  • 10. Stay up! . . . Application ! Scale out Add more “Web” servers RDBMS ! Scale Up Get bigger server App Server RDBMS
  • 11. Scaling out RDBMS . . . App Server . . . Memcached . . . MySQL • Run Many SQL Servers ! • Data could be sharded • Done by the application code ! • Caching Layer
  • 12. NoSQL to Scale out! . . . Application ! Scale out Add more “Web” servers NoSQL ! Scale Out Add more servers App Server . . . NoSQL
  • 13. Operational vs Analytics Databases Applications, Interactions Warehouse, Analytics
  • 14. Polyglot Persistence Big Data/Analysis Document RDBMS • Log Capture • Recommendations • Predictions • Ad Campaign • Products • User Profiles • Game Actions • Sessions • Shopping Cart • Financial Data • Reporting
  • 15. Developer New Skills • Understand the pros/cons of each solutions – Programming API – How to access the data? (API, Query Languages) • Learn how to design data model – De-normalizing and duplicate data is not a problem • Integrate each solution to your application • Note: This is something you already do ! – Operational RDBMS and Data Warehouse
  • 16. Data Service Layer • Wrap data call in Services – loosely coupled . . . App Server
  • 17. Use Case : Personalization WebSite / Application Personalization Database LogsLogs Data Processing Application Data
  • 18. Use Case : Mobile / API PIM Database • Legacy Application • Product Information NoSQL • REST API • Product Data • Additional Metadata
  • 20. Why multiple languages? • Sometimes we have no choice – HTML/CSS/JavaScript + Server Side – Mobile Native Applications • Java/.Net are slow movers – Java EE 5.0 is still mainstream (2006) • Many languages and frameworks – Scala, Clojure, Groovy, Dart, Go, Ruby, Python, F#, Erlang, Node.js, Rails, Play!, Grails, ...
  • 21. Examples • Realtime interaction with WebSockets : – Wait for Java EE 7 to supported by your IT? – Hack your app server and application with Continuation ? – Use Node.js and Socket.io ? ! • Data Collection and Treatment? – Find a library? – Create your library? – Use Java 8 and Lambdas? – Use Scala?
  • 22. Examples • Simple CRUD Application – Use the JavaEE stack with JPA and JSF? – Use Spring ? – Use tools like Play!, Grails, Rails, MEAN ?
  • 23. How to chose? • Maturity/Supportability • Features Set • Learning Curve • Productivity
  • 24. Polyglot Programming in Action • Build a new database – Save and retrieve data on disk – Cache the data on RAM – Build a query engine – Build replication and sharding – Build a Monitoring engine & console – Build a Backup/Restore Solution
  • 25. Polyglot Programming in Action • Data access, caching, and replication – C/C++ is the fastest way to interact with I/O – Leverage existing Caching layer & I/O – memory-mapped file • Query & Indexing – Leverage C/C++, and expose native JS engine • Management – Web Console : Java & HTML/CSS – Agent : GoLang
  • 27. Use Case : Second Screen Experience . . . Node.js + Socket IO Play! ApplicaIon Python Scripts
  • 29. Conclusion • Use the good tool for the good task – Do not try to “hack” something when you have a simpler solution – Think about your users first... so deliver and get feedback • Learning is part of our job ! – And this will help you and your project • What about maintenance? – Do you think it is easier to maintain complex code?
  • 30. Tugdual Grall Technical Evangelist tug@mongodb.com @tgrall Questions?