SlideShare a Scribd company logo
Proud to be Polygot!
Tugdual “Tug” Grall
@tgrall
Technical Evangelist at

Wednesday, November 6, 13

.
{about : “me”}
• Tugdual “Tug” Grall
­ Couchbase
­ Technical Evangelist
­ eXo
­ CTO
­ Oracle
­ Developer/Product Manager
­ Mainly Java/SOA
­ Developer in consulting firms

Wednesday, November 6, 13

• Web
­

@tgrall

­

http://blog.grallandco.com

­

tgrall

­ NantesJUG co-founder
­ Pet Project :
­ http://www.resultri.com
­ tug@couchbase.com
­ tugdual@gmail.com
Modern Applications
• Modern Applications Must
­ Manage any type of data
­ Scale
­ Be fault	
  tolerant
­ Adapt to change

Wednesday, November 6, 13
Standard Architecture
• Mono-Technology
­ Same “language/architecture”
­ Single Database : RDBMS

• One size fits all approach

Wednesday, November 6, 13

JSP/JSF
Services
Messaging
JTA
DAO/JPA
Is it good for me?
• Many files
- XML, Sources, ..
• Hibernate/JPA is good for all?
- Impedance mismatch
• Need to scale
- from 0 to 50millions users in
6 weeks (real life)
- can I do that easily with such
architecture?

Wednesday, November 6, 13

• How to add new features
easily?
- code, schema change, ...
- and all this for yesterday!
• Lot of code
One	
  size	
  does	
  NOT	
  fit	
  all!

Wednesday, November 6, 13
Look at our Data....

Wednesday, November 6, 13
Big	
  Data

High Data Variety and Velocity

Trillions	
  of	
  Gigabytes	
  (Ze:abytes)

2.00

1.50

Unstructured	
  and	
  Semi-­‐
Structured	
  Data

1.00

Text,	
  Log	
  Files,	
  Click	
  
Streams,	
  Blogs,	
  
Tweets,	
  Audio,	
  Video,	
  
etc.

0.50

0

Structured	
  Data

2006

2009
Source:	
  IDC	
  

Wednesday, November 6, 13

More	
  Flexible	
  Data	
  Model	
  Required

2012
50	
  Million	
  Users	
  in	
  50	
  Days
Draw	
  Something	
  by	
  OMGPOP
Daily	
  Ac)ve	
  Users	
  (millions)
16

14

12

10

8

6

4

2

2/6

8

Wednesday, November 6, 13

10

12

14

16

18

20

22

24

26

28

3/1

3

5

7

9

11

13

15

17

19

21
How do you take this growth?
ApplicaXon	
  Scales	
  Out
Just	
  add	
  more	
  commodity	
  web	
  servers
System	
  Cost
ApplicaMon	
  Performance	
  

Web/App	
  Server	
  Tier

Users

RDBMS	
  Scales	
  Up
Get	
  a	
  bigger,	
  more	
  complex	
  server
System	
  Cost
ApplicaMon	
  Performance	
  

Won’t	
  scale	
  
beyond	
  this	
  
point
RelaXonal	
  Database
Users

Wednesday, November 6, 13
NoSQL Technology Scales Out
ApplicaXon	
  Scales	
  Out
Just	
  add	
  more	
  commodity	
  web	
  servers
System	
  Cost
ApplicaMon	
  Performance	
  

Web/App	
  Server	
  Tier

Users

NoSQL	
  Database	
  Scales	
  Out
Cost	
  and	
  performance	
  mirrors	
  app	
  Xer
System	
  Cost
ApplicaMon	
  Performance	
  

NoSQL	
  Distributed	
  Data	
  Store

Users

Wednesday, November 6, 13
OperaMonal	
  vs.	
  AnalyMc	
  Databases
Real-­‐Xme,	
  
InteracXve	
  Databases

AnalyXc
Databases

NoSQL
Fast	
  access	
  
to	
  data

Couchbase
MongoDB

Wednesday, November 6, 13

Get	
  insights	
  from	
  
data

Cloudera
Hortonworks
Mapr
Polyglot Persistence

Big	
  Data/Analysis

•	
  Log	
  Capture
•	
  RecommendaMons
•	
  AdCampaign

Wednesday, November 6, 13

Document	
  &	
  K/V

•	
  Products
•	
  User	
  Profiles
•	
  Game	
  AcMons
•	
  Sessions
•	
  Shopping	
  Cart

RDBMS

•	
  Financial	
  Data
•	
  ReporMng

Indexing

•Full	
  Text	
  Search
•Ad	
  hoc	
  queries
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

Wednesday, November 6, 13
Data Service Layer
• Wrap datastore in Services
- Loosely coupled
Data	
  Service

Wednesday, November 6, 13
Use Case : Content Driven Site

Wednesday, November 6, 13
Use Case: Mobile Services
Web/App	
  Server	
  Tier

Web/App	
  Server	
  Tier

Rabbit	
  MQ
PIM	
  Database
-­‐	
  Legacy	
  ApplicaXon
-­‐	
  Product	
  InformaXon

Wednesday, November 6, 13

NoSQL
-­‐	
  Product	
  Data
-­‐	
  AddiXonal	
  Metada
Now what?

Wednesday, November 6, 13
Why multiple languages?
• Sometimes we have no choice
­ HTML/CSS/JavaScript + Server Side
­ Mobile Native Applications
• Java/.Net have not evolved that must these past years
­ 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, ...

Wednesday, November 6, 13
Examples
• Realtime interaction with WebSockets
- Wait for Java EE 7 to be out?
- Hack your app server and application with Continuation ?
- Use Node.js and Socket.io ?
• Data Collection and Treatment?
- Find a library?
- Create your library?
- Wait for Java 8 and Lambdas?
- Use Scala? ... or other

Wednesday, November 6, 13
Examples
• Simple CRUD Application
­ Use the JavaEE stack with JPA and JSF?
­ Use Spring ?
­ Use tools like Play!, Grails, Rails ?

Wednesday, November 6, 13
How to chose?
• Maturity/Supportability
• Features Set
• Learning Curve
• Productivity

Wednesday, November 6, 13
Polyglot Programming in Action
• Build a distributed database
­ Manage distributed
processes
­ Save and retrieve data on
disk
­ Cache the data on RAM
­ Build a query engine

Wednesday, November 6, 13
Polyglot Programming in Action
• Manage Distributed Process
­ Erlang and OTP (Open Telecom Platform) has been built for that
­ Taking this will bootstrap a project quickly instead of implementing in
another language
• Data access and Caching
­ C/C++ is the best/fastest way to interact with I/O
­ Leverage existing Caching layer, for example Memcached written in C
• Query & Indexing
­ Easy to code for developer : Let’s use JavaScript

Wednesday, November 6, 13
Couchbase Server

Query	
  Engine

Query	
  API

11210	
  /	
  11211

8091
Admin	
  Console

Data	
  access	
  ports

hbp

Object-­‐managed
Cache

Data	
  Manager
Wriben	
  in	
  C/C++

REST	
  management	
  
API/Web	
  UI

Cluster	
  Manager
ReplicaMon,	
   ebalance,	
  	
  
Wriben	
  Sitate	
  RErlang
n	
   Manager
Shard	
  
Erlang	
  /OTP

8092

Storage	
  Engine

Data	
  Manager

Wednesday, November 6, 13

Cluster	
  Manager
Use Case: Second Screen Gaming
AdministraXon

Java/Play	
  ApplicaXon
Python	
  scrips

Wednesday, November 6, 13

Users

Node.js	
  +	
  Socket	
  IO
Conclusion
• Use the good tool for the good task
­ Do not try to “hack” something when you have a shorter 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

• Operations / DevOps
­ Think about it from day one... as a developer

• What about maintenance?
­ Do you think it is easier to maintain complex code?

Wednesday, November 6, 13
Q&A
@tgrall
tug@couchbase.com

Wednesday, November 6, 13

More Related Content

PDF
Proud to be polyglot
PPTX
Choosing the Right Database - Facebook DevC Malang Hackdays 2017
PPTX
Scalable data systems at Traveloka
PPTX
Scalable data pipeline at Traveloka - Facebook Dev Bandung
PPT
Mumps the Internet scale database
PPT
GT.M: A Tried and Tested Open-Source NoSQL Database
PDF
Making Mumps Acceptable to the Mainstream
PDF
Intro to FIS GT.M
Proud to be polyglot
Choosing the Right Database - Facebook DevC Malang Hackdays 2017
Scalable data systems at Traveloka
Scalable data pipeline at Traveloka - Facebook Dev Bandung
Mumps the Internet scale database
GT.M: A Tried and Tested Open-Source NoSQL Database
Making Mumps Acceptable to the Mainstream
Intro to FIS GT.M

What's hot (17)

PPT
Node.js: its potential in healthcare
PDF
Ramunas Balukonis. Research DWH
PDF
Hadoop based etl and solr based semantic search
PDF
Using a Fast Operational Database to Build Real-time Streaming Aggregations
PPTX
Analyser vos logs avec Ingensi
PDF
RDBMS & noSQL: Mixed for best performance
PDF
Ideas spracklen-final
PDF
Polyglot Persistence vs Multi-Model Databases
PDF
From Data Analytics to Fast Data Intelligence
PPTX
Veritas + MongoDB
PPTX
MongoDB in a Mainframe World
PPTX
What is NoSQL and CAP Theorem
PPTX
Beyond the Basics 1: Storage Engines
PDF
Voxxed Athens 2018 - Methods and Practices for Guaranteed Failure in Big Data
PDF
Production-Ready BIG ML Workflows - from zero to hero
PDF
MongoDB Breakfast Milan - Mainframe Offloading Strategies
PPTX
What is a good technology stack today?
Node.js: its potential in healthcare
Ramunas Balukonis. Research DWH
Hadoop based etl and solr based semantic search
Using a Fast Operational Database to Build Real-time Streaming Aggregations
Analyser vos logs avec Ingensi
RDBMS & noSQL: Mixed for best performance
Ideas spracklen-final
Polyglot Persistence vs Multi-Model Databases
From Data Analytics to Fast Data Intelligence
Veritas + MongoDB
MongoDB in a Mainframe World
What is NoSQL and CAP Theorem
Beyond the Basics 1: Storage Engines
Voxxed Athens 2018 - Methods and Practices for Guaranteed Failure in Big Data
Production-Ready BIG ML Workflows - from zero to hero
MongoDB Breakfast Milan - Mainframe Offloading Strategies
What is a good technology stack today?
Ad

Viewers also liked (8)

PDF
SRTA_Company Profile 2015
PPT
How an Enterprise Data Fabric (EDF) can improve resiliency and performance
PDF
제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30
PDF
Polyglot Persistence
PPTX
Polyglot persitence
PDF
Developing modular, polyglot applications with Spring (SpringOne India 2012)
PDF
Polyglot Persistence with OSGi - Alexander Grzesik
PPTX
OrientDB vs Neo4j - Comparison of query/speed/functionality
SRTA_Company Profile 2015
How an Enterprise Data Fabric (EDF) can improve resiliency and performance
제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30
Polyglot Persistence
Polyglot persitence
Developing modular, polyglot applications with Spring (SpringOne India 2012)
Polyglot Persistence with OSGi - Alexander Grzesik
OrientDB vs Neo4j - Comparison of query/speed/functionality
Ad

Similar to Proud to be polyglot! (20)

PDF
Proud to be Polyglot - Riviera Dev 2015
PDF
Softshake 2013: Introduction to NoSQL with Couchbase
PPTX
The Magic's in the Glue: Daniela Florescu Presentation on XQuery and the Cloud
PPTX
Introduction to Polyglot Persistence
KEY
Austin NoSQL 2011-07-06
PPTX
Myths & Reality - Choose a DBMS tailored to your use cases
PPTX
ГАННА КАПЛУН «noSQL vs SQL: порівняння використання реляційних та нереляційни...
PPTX
Betfair + Couchbase
PPTX
The Professional Programmer
PDF
Unlocked London - Technical Track
PPT
PPTX
PPTX
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
PDF
Hadoop & no sql new generation database systems
PDF
Oslo baksia2014
PDF
(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...
KEY
SSJS, NoSQL, GAE and AppengineJS
PDF
Think Big, think fast: how to select a future-proof database - Bruno Simic (C...
PDF
What drives Innovation? Innovations And Technological Solutions for the Distr...
PPTX
Hofstra University - Overview of Big Data
Proud to be Polyglot - Riviera Dev 2015
Softshake 2013: Introduction to NoSQL with Couchbase
The Magic's in the Glue: Daniela Florescu Presentation on XQuery and the Cloud
Introduction to Polyglot Persistence
Austin NoSQL 2011-07-06
Myths & Reality - Choose a DBMS tailored to your use cases
ГАННА КАПЛУН «noSQL vs SQL: порівняння використання реляційних та нереляційни...
Betfair + Couchbase
The Professional Programmer
Unlocked London - Technical Track
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
Hadoop & no sql new generation database systems
Oslo baksia2014
(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...
SSJS, NoSQL, GAE and AppengineJS
Think Big, think fast: how to select a future-proof database - Bruno Simic (C...
What drives Innovation? Innovations And Technological Solutions for the Distr...
Hofstra University - Overview of Big Data

More from NLJUG (20)

PPTX
The future of Web-Scale - Johan Tillema, Rene Boere & Chris Quach
PPTX
Speedy perception trumps speedy reception–smart asynchronous interactions - L...
PDF
Decoding the airspace above you with Java and $7 hardware - Bert Jan Schrijver
PPTX
Using Docker to Develop, Test and Run Maven Projects - Wouter Danes
PPTX
Kill the mutants and test your tests - Roy van Rijn
PDF
Real-time user interfaces - sosm gewoon makkelijker - Allard Buijze
PPTX
The end of traditional enterprise IT - ING's journey to the next generation I...
PDF
Performance van Java 8 en verder - Jeroen Borgers
PDF
Introduction to Reactive with Play and Akka - Markus Jura
PPTX
Web-scale op basis van Hadoop en Akka Reactive Streams - Johan Tillema, Rene ...
PDF
Workshop angular dart presentatie - Atos
PDF
Workshop spring boot presentatie - Atos
PDF
Cultivating the jenkins job jungle with groovy - Patrick van Dissel
PDF
Rethink your architecture - Marten Deinum
PPTX
Evolutionary Algorithms: the key to solving complex Java puzzles! - Bas knopper
PDF
Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...
PDF
Apache Wicket: 10 jaar en verder - Martijn Dashorst
PDF
Opening - Bert Ertman
PDF
Returning the right results - Jettro Coenradie
PDF
Reactive programming met Java 8 en Java EE 7 - Martijn Blankestijn
The future of Web-Scale - Johan Tillema, Rene Boere & Chris Quach
Speedy perception trumps speedy reception–smart asynchronous interactions - L...
Decoding the airspace above you with Java and $7 hardware - Bert Jan Schrijver
Using Docker to Develop, Test and Run Maven Projects - Wouter Danes
Kill the mutants and test your tests - Roy van Rijn
Real-time user interfaces - sosm gewoon makkelijker - Allard Buijze
The end of traditional enterprise IT - ING's journey to the next generation I...
Performance van Java 8 en verder - Jeroen Borgers
Introduction to Reactive with Play and Akka - Markus Jura
Web-scale op basis van Hadoop en Akka Reactive Streams - Johan Tillema, Rene ...
Workshop angular dart presentatie - Atos
Workshop spring boot presentatie - Atos
Cultivating the jenkins job jungle with groovy - Patrick van Dissel
Rethink your architecture - Marten Deinum
Evolutionary Algorithms: the key to solving complex Java puzzles! - Bas knopper
Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...
Apache Wicket: 10 jaar en verder - Martijn Dashorst
Opening - Bert Ertman
Returning the right results - Jettro Coenradie
Reactive programming met Java 8 en Java EE 7 - Martijn Blankestijn

Recently uploaded (20)

PDF
Encapsulation theory and applications.pdf
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Approach and Philosophy of On baking technology
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
KodekX | Application Modernization Development
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPT
Teaching material agriculture food technology
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Electronic commerce courselecture one. Pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Encapsulation theory and applications.pdf
MYSQL Presentation for SQL database connectivity
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Digital-Transformation-Roadmap-for-Companies.pptx
Approach and Philosophy of On baking technology
Building Integrated photovoltaic BIPV_UPV.pdf
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
KodekX | Application Modernization Development
“AI and Expert System Decision Support & Business Intelligence Systems”
Understanding_Digital_Forensics_Presentation.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
Teaching material agriculture food technology
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Electronic commerce courselecture one. Pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
CIFDAQ's Market Insight: SEC Turns Pro Crypto

Proud to be polyglot!

  • 1. Proud to be Polygot! Tugdual “Tug” Grall @tgrall Technical Evangelist at Wednesday, November 6, 13 .
  • 2. {about : “me”} • Tugdual “Tug” Grall ­ Couchbase ­ Technical Evangelist ­ eXo ­ CTO ­ Oracle ­ Developer/Product Manager ­ Mainly Java/SOA ­ Developer in consulting firms Wednesday, November 6, 13 • Web ­ @tgrall ­ http://blog.grallandco.com ­ tgrall ­ NantesJUG co-founder ­ Pet Project : ­ http://www.resultri.com ­ tug@couchbase.com ­ tugdual@gmail.com
  • 3. Modern Applications • Modern Applications Must ­ Manage any type of data ­ Scale ­ Be fault  tolerant ­ Adapt to change Wednesday, November 6, 13
  • 4. Standard Architecture • Mono-Technology ­ Same “language/architecture” ­ Single Database : RDBMS • One size fits all approach Wednesday, November 6, 13 JSP/JSF Services Messaging JTA DAO/JPA
  • 5. Is it good for me? • Many files - XML, Sources, .. • Hibernate/JPA is good for all? - Impedance mismatch • Need to scale - from 0 to 50millions users in 6 weeks (real life) - can I do that easily with such architecture? Wednesday, November 6, 13 • How to add new features easily? - code, schema change, ... - and all this for yesterday! • Lot of code
  • 6. One  size  does  NOT  fit  all! Wednesday, November 6, 13
  • 7. Look at our Data.... Wednesday, November 6, 13
  • 8. Big  Data High Data Variety and Velocity Trillions  of  Gigabytes  (Ze:abytes) 2.00 1.50 Unstructured  and  Semi-­‐ Structured  Data 1.00 Text,  Log  Files,  Click   Streams,  Blogs,   Tweets,  Audio,  Video,   etc. 0.50 0 Structured  Data 2006 2009 Source:  IDC   Wednesday, November 6, 13 More  Flexible  Data  Model  Required 2012
  • 9. 50  Million  Users  in  50  Days Draw  Something  by  OMGPOP Daily  Ac)ve  Users  (millions) 16 14 12 10 8 6 4 2 2/6 8 Wednesday, November 6, 13 10 12 14 16 18 20 22 24 26 28 3/1 3 5 7 9 11 13 15 17 19 21
  • 10. How do you take this growth? ApplicaXon  Scales  Out Just  add  more  commodity  web  servers System  Cost ApplicaMon  Performance   Web/App  Server  Tier Users RDBMS  Scales  Up Get  a  bigger,  more  complex  server System  Cost ApplicaMon  Performance   Won’t  scale   beyond  this   point RelaXonal  Database Users Wednesday, November 6, 13
  • 11. NoSQL Technology Scales Out ApplicaXon  Scales  Out Just  add  more  commodity  web  servers System  Cost ApplicaMon  Performance   Web/App  Server  Tier Users NoSQL  Database  Scales  Out Cost  and  performance  mirrors  app  Xer System  Cost ApplicaMon  Performance   NoSQL  Distributed  Data  Store Users Wednesday, November 6, 13
  • 12. OperaMonal  vs.  AnalyMc  Databases Real-­‐Xme,   InteracXve  Databases AnalyXc Databases NoSQL Fast  access   to  data Couchbase MongoDB Wednesday, November 6, 13 Get  insights  from   data Cloudera Hortonworks Mapr
  • 13. Polyglot Persistence Big  Data/Analysis •  Log  Capture •  RecommendaMons •  AdCampaign Wednesday, November 6, 13 Document  &  K/V •  Products •  User  Profiles •  Game  AcMons •  Sessions •  Shopping  Cart RDBMS •  Financial  Data •  ReporMng Indexing •Full  Text  Search •Ad  hoc  queries
  • 14. 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 Wednesday, November 6, 13
  • 15. Data Service Layer • Wrap datastore in Services - Loosely coupled Data  Service Wednesday, November 6, 13
  • 16. Use Case : Content Driven Site Wednesday, November 6, 13
  • 17. Use Case: Mobile Services Web/App  Server  Tier Web/App  Server  Tier Rabbit  MQ PIM  Database -­‐  Legacy  ApplicaXon -­‐  Product  InformaXon Wednesday, November 6, 13 NoSQL -­‐  Product  Data -­‐  AddiXonal  Metada
  • 19. Why multiple languages? • Sometimes we have no choice ­ HTML/CSS/JavaScript + Server Side ­ Mobile Native Applications • Java/.Net have not evolved that must these past years ­ 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, ... Wednesday, November 6, 13
  • 20. Examples • Realtime interaction with WebSockets - Wait for Java EE 7 to be out? - Hack your app server and application with Continuation ? - Use Node.js and Socket.io ? • Data Collection and Treatment? - Find a library? - Create your library? - Wait for Java 8 and Lambdas? - Use Scala? ... or other Wednesday, November 6, 13
  • 21. Examples • Simple CRUD Application ­ Use the JavaEE stack with JPA and JSF? ­ Use Spring ? ­ Use tools like Play!, Grails, Rails ? Wednesday, November 6, 13
  • 22. How to chose? • Maturity/Supportability • Features Set • Learning Curve • Productivity Wednesday, November 6, 13
  • 23. Polyglot Programming in Action • Build a distributed database ­ Manage distributed processes ­ Save and retrieve data on disk ­ Cache the data on RAM ­ Build a query engine Wednesday, November 6, 13
  • 24. Polyglot Programming in Action • Manage Distributed Process ­ Erlang and OTP (Open Telecom Platform) has been built for that ­ Taking this will bootstrap a project quickly instead of implementing in another language • Data access and Caching ­ C/C++ is the best/fastest way to interact with I/O ­ Leverage existing Caching layer, for example Memcached written in C • Query & Indexing ­ Easy to code for developer : Let’s use JavaScript Wednesday, November 6, 13
  • 25. Couchbase Server Query  Engine Query  API 11210  /  11211 8091 Admin  Console Data  access  ports hbp Object-­‐managed Cache Data  Manager Wriben  in  C/C++ REST  management   API/Web  UI Cluster  Manager ReplicaMon,   ebalance,     Wriben  Sitate  RErlang n   Manager Shard   Erlang  /OTP 8092 Storage  Engine Data  Manager Wednesday, November 6, 13 Cluster  Manager
  • 26. Use Case: Second Screen Gaming AdministraXon Java/Play  ApplicaXon Python  scrips Wednesday, November 6, 13 Users Node.js  +  Socket  IO
  • 27. Conclusion • Use the good tool for the good task ­ Do not try to “hack” something when you have a shorter 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 • Operations / DevOps ­ Think about it from day one... as a developer • What about maintenance? ­ Do you think it is easier to maintain complex code? Wednesday, November 6, 13