Proud to be polyglot

Tugdual Grall
Tugdual GrallTechnical Evangelist at MapR
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?
1 of 30

Recommended

Big Data, Big Dream by
Big Data, Big DreamBig Data, Big Dream
Big Data, Big DreamWayne Weixin
609 views44 slides
Drop acid by
Drop acidDrop acid
Drop acidMike Feltman
1.8K views29 slides
Building an ML Tool to predict Article Quality Scores using Delta & MLFlow by
Building an ML Tool to predict Article Quality Scores using Delta & MLFlowBuilding an ML Tool to predict Article Quality Scores using Delta & MLFlow
Building an ML Tool to predict Article Quality Scores using Delta & MLFlowDatabricks
364 views16 slides
Scaling Online ML Predictions At DoorDash by
Scaling Online ML Predictions At DoorDashScaling Online ML Predictions At DoorDash
Scaling Online ML Predictions At DoorDashDatabricks
537 views57 slides
Dropping ACID: Wrapping Your Mind Around NoSQL Databases by
Dropping ACID: Wrapping Your Mind Around NoSQL DatabasesDropping ACID: Wrapping Your Mind Around NoSQL Databases
Dropping ACID: Wrapping Your Mind Around NoSQL DatabasesKyle Banerjee
657 views21 slides
Building a Scalable and Modern Infrastructure at CARFAX by
Building a Scalable and Modern Infrastructure at CARFAXBuilding a Scalable and Modern Infrastructure at CARFAX
Building a Scalable and Modern Infrastructure at CARFAXMongoDB
732 views34 slides

More Related Content

What's hot

AI Modernization at AT&T and the Application to Fraud with Databricks by
AI Modernization at AT&T and the Application to Fraud with DatabricksAI Modernization at AT&T and the Application to Fraud with Databricks
AI Modernization at AT&T and the Application to Fraud with DatabricksDatabricks
585 views15 slides
In Memory Cahce Structure by
In Memory Cahce StructureIn Memory Cahce Structure
In Memory Cahce StructureMehmet Ali Tastan
450 views19 slides
Pyramid Analytics vs Sisense by
Pyramid Analytics vs SisensePyramid Analytics vs Sisense
Pyramid Analytics vs SisensePyramid Analytics
295 views7 slides
Skillwise corporate presentation by
Skillwise corporate presentationSkillwise corporate presentation
Skillwise corporate presentationSkillwise Group
182 views12 slides
SPA vs. MPA by
SPA vs. MPASPA vs. MPA
SPA vs. MPAMehmet Ali Tastan
3.3K views16 slides
Bazillion New Technologies by
Bazillion New TechnologiesBazillion New Technologies
Bazillion New TechnologiesAyman Mahfouz
1.1K views56 slides

What's hot(20)

AI Modernization at AT&T and the Application to Fraud with Databricks by Databricks
AI Modernization at AT&T and the Application to Fraud with DatabricksAI Modernization at AT&T and the Application to Fraud with Databricks
AI Modernization at AT&T and the Application to Fraud with Databricks
Databricks585 views
Skillwise corporate presentation by Skillwise Group
Skillwise corporate presentationSkillwise corporate presentation
Skillwise corporate presentation
Skillwise Group182 views
Bazillion New Technologies by Ayman Mahfouz
Bazillion New TechnologiesBazillion New Technologies
Bazillion New Technologies
Ayman Mahfouz1.1K views
Data Engineering Challenges - DSE Day at Bandung Institute of Technology by Rendy Bambang Junior
Data Engineering Challenges - DSE Day at Bandung Institute of TechnologyData Engineering Challenges - DSE Day at Bandung Institute of Technology
Data Engineering Challenges - DSE Day at Bandung Institute of Technology
Olympya web-tools 2011 by Paulo Mattos
Olympya web-tools 2011Olympya web-tools 2011
Olympya web-tools 2011
Paulo Mattos148 views
Pinterest - Big Data Machine Learning Platform at Pinterest by Alluxio, Inc.
Pinterest - Big Data Machine Learning Platform at PinterestPinterest - Big Data Machine Learning Platform at Pinterest
Pinterest - Big Data Machine Learning Platform at Pinterest
Alluxio, Inc.38.8K views
CakePHP, cakePHP development Company by NetConnectWeb
CakePHP, cakePHP development CompanyCakePHP, cakePHP development Company
CakePHP, cakePHP development Company
NetConnectWeb250 views
Inside Zalo: Developing a mobile messenger for the audience of millions - VN ... by Quang Diệu Nguyễn
Inside Zalo: Developing a mobile messenger for the audience of millions - VN ...Inside Zalo: Developing a mobile messenger for the audience of millions - VN ...
Inside Zalo: Developing a mobile messenger for the audience of millions - VN ...
Quang Diệu Nguyễn10.8K views
SQL Azure for ISUG(SQL Server Israeli User Group) by Pini Krisher
SQL Azure for ISUG(SQL Server Israeli User Group)SQL Azure for ISUG(SQL Server Israeli User Group)
SQL Azure for ISUG(SQL Server Israeli User Group)
Pini Krisher278 views
SLQ vs NOSQL - friends or foes by Pedro Gomes
SLQ vs NOSQL - friends or foes SLQ vs NOSQL - friends or foes
SLQ vs NOSQL - friends or foes
Pedro Gomes619 views
DevCon Summit 2014 #DevelopersUnitePH: The "What" and "Why" of NoSQL by Matia... by DEVCON
DevCon Summit 2014 #DevelopersUnitePH: The "What" and "Why" of NoSQL by Matia...DevCon Summit 2014 #DevelopersUnitePH: The "What" and "Why" of NoSQL by Matia...
DevCon Summit 2014 #DevelopersUnitePH: The "What" and "Why" of NoSQL by Matia...
DEVCON 2.5K views
The XML Forms Architecture by iText Group nv
The XML Forms ArchitectureThe XML Forms Architecture
The XML Forms Architecture
iText Group nv1.9K views
Why you really want SQL in a Real-Time Enterprise Environment by VoltDB
Why you really want SQL in a Real-Time Enterprise EnvironmentWhy you really want SQL in a Real-Time Enterprise Environment
Why you really want SQL in a Real-Time Enterprise Environment
VoltDB767 views
SLQ vs NOSQL - friends or foes by Miguel Araújo
SLQ vs NOSQL - friends or foesSLQ vs NOSQL - friends or foes
SLQ vs NOSQL - friends or foes
Miguel Araújo1.4K views

Viewers also liked

My updated CV by
My updated CVMy updated CV
My updated CVStKingsley Uzoaru
101 views3 slides
Практическое применение принципа инверсии зависимостей на примере Ruby by
Практическое применение принципа инверсии зависимостей на примере RubyПрактическое применение принципа инверсии зависимостей на примере Ruby
Практическое применение принципа инверсии зависимостей на примере RubyProvectus
463 views20 slides
Vadat bniya060208(2) by
Vadat bniya060208(2)Vadat bniya060208(2)
Vadat bniya060208(2)Noemi Seroussi
153 views38 slides
Podsumowanie by
PodsumowaniePodsumowanie
PodsumowanieEwelina Kozik
176 views9 slides
Fin200.wk2 check pointfinancialratios_davidf by
Fin200.wk2 check pointfinancialratios_davidfFin200.wk2 check pointfinancialratios_davidf
Fin200.wk2 check pointfinancialratios_davidfDavid Fryoux
125 views1 slide
Законопроект "Про наукову та науково-технічну діяльність" by
Законопроект "Про наукову та науково-технічну діяльність"Законопроект "Про наукову та науково-технічну діяльність"
Законопроект "Про наукову та науково-технічну діяльність"UAReforms
229 views1 slide

Viewers also liked(20)

Практическое применение принципа инверсии зависимостей на примере Ruby by Provectus
Практическое применение принципа инверсии зависимостей на примере RubyПрактическое применение принципа инверсии зависимостей на примере Ruby
Практическое применение принципа инверсии зависимостей на примере Ruby
Provectus463 views
Fin200.wk2 check pointfinancialratios_davidf by David Fryoux
Fin200.wk2 check pointfinancialratios_davidfFin200.wk2 check pointfinancialratios_davidf
Fin200.wk2 check pointfinancialratios_davidf
David Fryoux125 views
Законопроект "Про наукову та науково-технічну діяльність" by UAReforms
Законопроект "Про наукову та науково-технічну діяльність"Законопроект "Про наукову та науково-технічну діяльність"
Законопроект "Про наукову та науково-технічну діяльність"
UAReforms229 views
QA MeetUp - Евгений Сабиров: "Рай тестировщика - миф или реальность?" by Provectus
QA MeetUp - Евгений Сабиров: "Рай тестировщика - миф или реальность?"QA MeetUp - Евгений Сабиров: "Рай тестировщика - миф или реальность?"
QA MeetUp - Евгений Сабиров: "Рай тестировщика - миф или реальность?"
Provectus196 views
Lize de Jager - Reference Letter by Lize De Jager
Lize de Jager - Reference LetterLize de Jager - Reference Letter
Lize de Jager - Reference Letter
Lize De Jager119 views
Ринат Ахметов: "Восстановление модели трехмерного объекта по видеопотоку" by Provectus
Ринат Ахметов: "Восстановление модели трехмерного объекта по видеопотоку"Ринат Ахметов: "Восстановление модели трехмерного объекта по видеопотоку"
Ринат Ахметов: "Восстановление модели трехмерного объекта по видеопотоку"
Provectus264 views
Ficha 2 de 3º Música by musicalarra
Ficha 2 de 3º MúsicaFicha 2 de 3º Música
Ficha 2 de 3º Música
musicalarra303 views
Роман Петров - юнит-тестирование мобильных приложений на примере платформы iOS by Provectus
Роман Петров - юнит-тестирование мобильных приложений на примере платформы iOSРоман Петров - юнит-тестирование мобильных приложений на примере платформы iOS
Роман Петров - юнит-тестирование мобильных приложений на примере платформы iOS
Provectus877 views
вольфсон борис - кайзен процесс непрерывного совершенствования by Magneta AI
вольфсон борис -  кайзен процесс непрерывного совершенствованиявольфсон борис -  кайзен процесс непрерывного совершенствования
вольфсон борис - кайзен процесс непрерывного совершенствования
Magneta AI805 views
Final Year Thesis.PDF by Omer Farooqi
Final Year Thesis.PDFFinal Year Thesis.PDF
Final Year Thesis.PDF
Omer Farooqi6.2K views
Unmardelendas by iesasorey
UnmardelendasUnmardelendas
Unmardelendas
iesasorey3K views
La niña curiosa by campusdomar
La niña curiosaLa niña curiosa
La niña curiosa
campusdomar2.6K views
Textos de estudiantes de tercer grado de secundaria (Albert Sofia) by lissetteperez30
Textos de estudiantes de tercer grado de secundaria (Albert   Sofia)Textos de estudiantes de tercer grado de secundaria (Albert   Sofia)
Textos de estudiantes de tercer grado de secundaria (Albert Sofia)
lissetteperez302.5K views
Bienvenidos by oceantica
BienvenidosBienvenidos
Bienvenidos
oceantica2.9K views

Similar to Proud to be polyglot

Hadoop and the Data Warehouse: Point/Counter Point by
Hadoop and the Data Warehouse: Point/Counter PointHadoop and the Data Warehouse: Point/Counter Point
Hadoop and the Data Warehouse: Point/Counter PointInside Analysis
1.3K views45 slides
Meetup. Technologies Intro for Non-Tech People by
Meetup. Technologies Intro for Non-Tech PeopleMeetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleIT Arena
138 views54 slides
DataOps with Project Amaterasu by
DataOps with Project AmaterasuDataOps with Project Amaterasu
DataOps with Project AmaterasuDataWorks Summit/Hadoop Summit
1.9K views27 slides
Mobile gotcha by
Mobile gotchaMobile gotcha
Mobile gotchaphegaro
4.1K views48 slides
Understanding cloud with Google Cloud Platform by
Understanding cloud with Google Cloud PlatformUnderstanding cloud with Google Cloud Platform
Understanding cloud with Google Cloud PlatformDr. Ketan Parmar
8.4K views44 slides
Machine Learning for Smarter Apps - Jacksonville Meetup by
Machine Learning for Smarter Apps - Jacksonville MeetupMachine Learning for Smarter Apps - Jacksonville Meetup
Machine Learning for Smarter Apps - Jacksonville MeetupSri Ambati
1.9K views49 slides

Similar to Proud to be polyglot(20)

Hadoop and the Data Warehouse: Point/Counter Point by Inside Analysis
Hadoop and the Data Warehouse: Point/Counter PointHadoop and the Data Warehouse: Point/Counter Point
Hadoop and the Data Warehouse: Point/Counter Point
Inside Analysis1.3K views
Meetup. Technologies Intro for Non-Tech People by IT Arena
Meetup. Technologies Intro for Non-Tech PeopleMeetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech People
IT Arena138 views
Mobile gotcha by phegaro
Mobile gotchaMobile gotcha
Mobile gotcha
phegaro4.1K views
Understanding cloud with Google Cloud Platform by Dr. Ketan Parmar
Understanding cloud with Google Cloud PlatformUnderstanding cloud with Google Cloud Platform
Understanding cloud with Google Cloud Platform
Dr. Ketan Parmar8.4K views
Machine Learning for Smarter Apps - Jacksonville Meetup by Sri Ambati
Machine Learning for Smarter Apps - Jacksonville MeetupMachine Learning for Smarter Apps - Jacksonville Meetup
Machine Learning for Smarter Apps - Jacksonville Meetup
Sri Ambati1.9K views
The Challenges of Bringing Machine Learning to the Masses by Alice Zheng
The Challenges of Bringing Machine Learning to the MassesThe Challenges of Bringing Machine Learning to the Masses
The Challenges of Bringing Machine Learning to the Masses
Alice Zheng3.3K views
Sunshine consulting Mopuru Babu CV_Java_J2ee_Spring_Bigdata_Scala_Spark by Mopuru Babu
Sunshine consulting Mopuru Babu CV_Java_J2ee_Spring_Bigdata_Scala_SparkSunshine consulting Mopuru Babu CV_Java_J2ee_Spring_Bigdata_Scala_Spark
Sunshine consulting Mopuru Babu CV_Java_J2ee_Spring_Bigdata_Scala_Spark
Mopuru Babu151 views
Sunshine consulting mopuru babu cv_java_j2_ee_spring_bigdata_scala_Spark by Mopuru Babu
Sunshine consulting mopuru babu cv_java_j2_ee_spring_bigdata_scala_SparkSunshine consulting mopuru babu cv_java_j2_ee_spring_bigdata_scala_Spark
Sunshine consulting mopuru babu cv_java_j2_ee_spring_bigdata_scala_Spark
Mopuru Babu59 views
(ATS6-DEV02) Web Application Strategies by BIOVIA
(ATS6-DEV02) Web Application Strategies(ATS6-DEV02) Web Application Strategies
(ATS6-DEV02) Web Application Strategies
BIOVIA517 views
In-Memory Computing - The Big Picture by MarkusKett
In-Memory Computing - The Big PictureIn-Memory Computing - The Big Picture
In-Memory Computing - The Big Picture
MarkusKett44 views
Cloud nativecomputingtechnologysupportinghpc cognitiveworkflows by Yong Feng
Cloud nativecomputingtechnologysupportinghpc cognitiveworkflowsCloud nativecomputingtechnologysupportinghpc cognitiveworkflows
Cloud nativecomputingtechnologysupportinghpc cognitiveworkflows
Yong Feng201 views
Transform your DBMS to drive engagement innovation with Big Data by Ashnikbiz
Transform your DBMS to drive engagement innovation with Big DataTransform your DBMS to drive engagement innovation with Big Data
Transform your DBMS to drive engagement innovation with Big Data
Ashnikbiz509 views
Machine learning model to production by Georg Heiler
Machine learning model to productionMachine learning model to production
Machine learning model to production
Georg Heiler4.4K views
Write Generic Code with the Tooling API by Adam Olshansky
Write Generic Code with the Tooling APIWrite Generic Code with the Tooling API
Write Generic Code with the Tooling API
Adam Olshansky584 views
OPEN'17_4_Postgres: The Centerpiece for Modernising IT Infrastructures by Kangaroot
OPEN'17_4_Postgres: The Centerpiece for Modernising IT InfrastructuresOPEN'17_4_Postgres: The Centerpiece for Modernising IT Infrastructures
OPEN'17_4_Postgres: The Centerpiece for Modernising IT Infrastructures
Kangaroot288 views
Big Data Open Source Tools and Trends: Enable Real-Time Business Intelligence... by Perficient, Inc.
Big Data Open Source Tools and Trends: Enable Real-Time Business Intelligence...Big Data Open Source Tools and Trends: Enable Real-Time Business Intelligence...
Big Data Open Source Tools and Trends: Enable Real-Time Business Intelligence...
Perficient, Inc.3.6K views
InfoSphere BigInsights - Analytics power for Hadoop - field experience by Wilfried Hoge
InfoSphere BigInsights - Analytics power for Hadoop - field experienceInfoSphere BigInsights - Analytics power for Hadoop - field experience
InfoSphere BigInsights - Analytics power for Hadoop - field experience
Wilfried Hoge2.6K views
Student Industrial Training Presentation Slide by Khairul Filhan
Student Industrial Training Presentation SlideStudent Industrial Training Presentation Slide
Student Industrial Training Presentation Slide
Khairul Filhan25.3K views

More from Tugdual Grall

Introduction to Streaming with Apache Flink by
Introduction to Streaming with Apache FlinkIntroduction to Streaming with Apache Flink
Introduction to Streaming with Apache FlinkTugdual Grall
730 views58 slides
Introduction to Streaming with Apache Flink by
Introduction to Streaming with Apache FlinkIntroduction to Streaming with Apache Flink
Introduction to Streaming with Apache FlinkTugdual Grall
336 views56 slides
Fast Cars, Big Data - How Streaming Can Help Formula 1 by
Fast Cars, Big Data - How Streaming Can Help Formula 1Fast Cars, Big Data - How Streaming Can Help Formula 1
Fast Cars, Big Data - How Streaming Can Help Formula 1Tugdual Grall
863 views54 slides
Lambda Architecture: The Best Way to Build Scalable and Reliable Applications! by
Lambda Architecture: The Best Way to Build Scalable and Reliable Applications!Lambda Architecture: The Best Way to Build Scalable and Reliable Applications!
Lambda Architecture: The Best Way to Build Scalable and Reliable Applications!Tugdual Grall
1.8K views51 slides
Big Data Journey by
Big Data JourneyBig Data Journey
Big Data JourneyTugdual Grall
844 views41 slides
Proud to be Polyglot - Riviera Dev 2015 by
Proud to be Polyglot - Riviera Dev 2015Proud to be Polyglot - Riviera Dev 2015
Proud to be Polyglot - Riviera Dev 2015Tugdual Grall
950 views28 slides

More from Tugdual Grall(20)

Introduction to Streaming with Apache Flink by Tugdual Grall
Introduction to Streaming with Apache FlinkIntroduction to Streaming with Apache Flink
Introduction to Streaming with Apache Flink
Tugdual Grall730 views
Introduction to Streaming with Apache Flink by Tugdual Grall
Introduction to Streaming with Apache FlinkIntroduction to Streaming with Apache Flink
Introduction to Streaming with Apache Flink
Tugdual Grall336 views
Fast Cars, Big Data - How Streaming Can Help Formula 1 by Tugdual Grall
Fast Cars, Big Data - How Streaming Can Help Formula 1Fast Cars, Big Data - How Streaming Can Help Formula 1
Fast Cars, Big Data - How Streaming Can Help Formula 1
Tugdual Grall863 views
Lambda Architecture: The Best Way to Build Scalable and Reliable Applications! by Tugdual Grall
Lambda Architecture: The Best Way to Build Scalable and Reliable Applications!Lambda Architecture: The Best Way to Build Scalable and Reliable Applications!
Lambda Architecture: The Best Way to Build Scalable and Reliable Applications!
Tugdual Grall1.8K views
Proud to be Polyglot - Riviera Dev 2015 by Tugdual Grall
Proud to be Polyglot - Riviera Dev 2015Proud to be Polyglot - Riviera Dev 2015
Proud to be Polyglot - Riviera Dev 2015
Tugdual Grall950 views
Introduction to NoSQL with MongoDB - SQLi Workshop by Tugdual Grall
Introduction to NoSQL with MongoDB - SQLi WorkshopIntroduction to NoSQL with MongoDB - SQLi Workshop
Introduction to NoSQL with MongoDB - SQLi Workshop
Tugdual Grall1K views
Enabling Telco to Build and Run Modern Applications by Tugdual Grall
Enabling Telco to Build and Run Modern Applications Enabling Telco to Build and Run Modern Applications
Enabling Telco to Build and Run Modern Applications
Tugdual Grall678 views
Drop your table ! MongoDB Schema Design by Tugdual Grall
Drop your table ! MongoDB Schema DesignDrop your table ! MongoDB Schema Design
Drop your table ! MongoDB Schema Design
Tugdual Grall1.3K views
Devoxx 2014 : Atelier MongoDB - Decouverte de MongoDB 2.6 by Tugdual Grall
Devoxx 2014 : Atelier MongoDB - Decouverte de MongoDB 2.6Devoxx 2014 : Atelier MongoDB - Decouverte de MongoDB 2.6
Devoxx 2014 : Atelier MongoDB - Decouverte de MongoDB 2.6
Tugdual Grall1.3K views
Some cool features of MongoDB by Tugdual Grall
Some cool features of MongoDBSome cool features of MongoDB
Some cool features of MongoDB
Tugdual Grall1.2K views
Building Your First MongoDB Application by Tugdual Grall
Building Your First MongoDB ApplicationBuilding Your First MongoDB Application
Building Your First MongoDB Application
Tugdual Grall2.6K views
Softshake 2013: Introduction to NoSQL with Couchbase by Tugdual Grall
Softshake 2013: Introduction to NoSQL with CouchbaseSoftshake 2013: Introduction to NoSQL with Couchbase
Softshake 2013: Introduction to NoSQL with Couchbase
Tugdual Grall965 views
Introduction to NoSQL with Couchbase by Tugdual Grall
Introduction to NoSQL with CouchbaseIntroduction to NoSQL with Couchbase
Introduction to NoSQL with Couchbase
Tugdual Grall1.5K views
Why and How to integrate Hadoop and NoSQL? by Tugdual Grall
Why and How to integrate Hadoop and NoSQL?Why and How to integrate Hadoop and NoSQL?
Why and How to integrate Hadoop and NoSQL?
Tugdual Grall691 views
NoSQL Matters 2013 - Introduction to Map Reduce with Couchbase 2.0 by Tugdual Grall
NoSQL Matters 2013 - Introduction to Map Reduce with Couchbase 2.0NoSQL Matters 2013 - Introduction to Map Reduce with Couchbase 2.0
NoSQL Matters 2013 - Introduction to Map Reduce with Couchbase 2.0
Tugdual Grall1.4K views
Big Data Paris : Hadoop and NoSQL by Tugdual Grall
Big Data Paris : Hadoop and NoSQLBig Data Paris : Hadoop and NoSQL
Big Data Paris : Hadoop and NoSQL
Tugdual Grall1.1K views

Recently uploaded

STPI OctaNE CoE Brochure.pdf by
STPI OctaNE CoE Brochure.pdfSTPI OctaNE CoE Brochure.pdf
STPI OctaNE CoE Brochure.pdfmadhurjyapb
13 views1 slide
Empathic Computing: Delivering the Potential of the Metaverse by
Empathic Computing: Delivering  the Potential of the MetaverseEmpathic Computing: Delivering  the Potential of the Metaverse
Empathic Computing: Delivering the Potential of the MetaverseMark Billinghurst
476 views80 slides
Report 2030 Digital Decade by
Report 2030 Digital DecadeReport 2030 Digital Decade
Report 2030 Digital DecadeMassimo Talia
15 views41 slides
Vertical User Stories by
Vertical User StoriesVertical User Stories
Vertical User StoriesMoisés Armani Ramírez
12 views16 slides
Web Dev - 1 PPT.pdf by
Web Dev - 1 PPT.pdfWeb Dev - 1 PPT.pdf
Web Dev - 1 PPT.pdfgdsczhcet
60 views45 slides

Recently uploaded(20)

STPI OctaNE CoE Brochure.pdf by madhurjyapb
STPI OctaNE CoE Brochure.pdfSTPI OctaNE CoE Brochure.pdf
STPI OctaNE CoE Brochure.pdf
madhurjyapb13 views
Empathic Computing: Delivering the Potential of the Metaverse by Mark Billinghurst
Empathic Computing: Delivering  the Potential of the MetaverseEmpathic Computing: Delivering  the Potential of the Metaverse
Empathic Computing: Delivering the Potential of the Metaverse
Mark Billinghurst476 views
Web Dev - 1 PPT.pdf by gdsczhcet
Web Dev - 1 PPT.pdfWeb Dev - 1 PPT.pdf
Web Dev - 1 PPT.pdf
gdsczhcet60 views
Five Things You SHOULD Know About Postman by Postman
Five Things You SHOULD Know About PostmanFive Things You SHOULD Know About Postman
Five Things You SHOULD Know About Postman
Postman30 views
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas... by Bernd Ruecker
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
Bernd Ruecker33 views
Spesifikasi Lengkap ASUS Vivobook Go 14 by Dot Semarang
Spesifikasi Lengkap ASUS Vivobook Go 14Spesifikasi Lengkap ASUS Vivobook Go 14
Spesifikasi Lengkap ASUS Vivobook Go 14
Dot Semarang37 views
Case Study Copenhagen Energy and Business Central.pdf by Aitana
Case Study Copenhagen Energy and Business Central.pdfCase Study Copenhagen Energy and Business Central.pdf
Case Study Copenhagen Energy and Business Central.pdf
Aitana16 views
The details of description: Techniques, tips, and tangents on alternative tex... by BookNet Canada
The details of description: Techniques, tips, and tangents on alternative tex...The details of description: Techniques, tips, and tangents on alternative tex...
The details of description: Techniques, tips, and tangents on alternative tex...
BookNet Canada126 views
6g - REPORT.pdf by Liveplex
6g - REPORT.pdf6g - REPORT.pdf
6g - REPORT.pdf
Liveplex10 views
Business Analyst Series 2023 - Week 3 Session 5 by DianaGray10
Business Analyst Series 2023 -  Week 3 Session 5Business Analyst Series 2023 -  Week 3 Session 5
Business Analyst Series 2023 - Week 3 Session 5
DianaGray10237 views
Special_edition_innovator_2023.pdf by WillDavies22
Special_edition_innovator_2023.pdfSpecial_edition_innovator_2023.pdf
Special_edition_innovator_2023.pdf
WillDavies2217 views
Transcript: The Details of Description Techniques tips and tangents on altern... by BookNet Canada
Transcript: The Details of Description Techniques tips and tangents on altern...Transcript: The Details of Description Techniques tips and tangents on altern...
Transcript: The Details of Description Techniques tips and tangents on altern...
BookNet Canada135 views
Lilypad @ Labweek, Istanbul, 2023.pdf by Ally339821
Lilypad @ Labweek, Istanbul, 2023.pdfLilypad @ Labweek, Istanbul, 2023.pdf
Lilypad @ Labweek, Istanbul, 2023.pdf
Ally3398219 views
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors by sugiuralab
TouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective SensorsTouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective Sensors
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors
sugiuralab19 views

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?