These last years, data management has become a trending and very dynamic subject. Subjects and tech trends like NoSQL, localcache, offline synchronization or message brokers are now at the core of projects infrastructures. This is linked to the new trend around functional programing, for data manipulation.
The talk goal is to show connections between NoSQL, data processing, message broking and JavaScript. How to quickly prototype with these tools! Are these tools only for mass storage or raw performance? Does it allow you to code faster?
http://qconlondon.com/london-2013/presentation/JavaScript%20as%20Data%20Processing%20Language%20&%20HTML5%20Integration
4. +
Big change in software industry
Yesteday Now
n One instance n One instance (distributed)
n One organization n Multiple organization + a lot of
users
n One data repository
n One data repository
Multi-tenant
5. +
• Atomicity
• Consistency
ACID • Isolation
• Durability
Instance for one
Organization Powerful • Transaction
• User
Take advantage of ACID database data management
management • One above one
8. +
Example : e-shop on classic mode
User A buy a
hdd
Transaction
Database Transaction : user A is
• Stock management
processed
• Order management
• Invoice generation
• Customer Account reward
• …
Stock &
Order are
just perfectly
synchronize
9. +
Example : e-shop on classic mode
User A buy a
hdd
Transaction
Database Transaction : user A is
• Stock management
processed
• Order management
• Invoice generation
• Customer Account reward
• …
then
User B buy a Stock &
hdd Transaction
Order are
user B is just perfectly
processed synchronize
10. +
Example : e-shop on multi-tenant
mode
n i.e. : Multiple shop of various sellers on the same instance
11. +
Example : e-shop on multi-tenant
mode
User A buy a
hdd on seller A
Transaction
Database Transaction : user A is
• Stock management
processed
• Order management
• Invoice generation
• Customer Account reward
• …
then
User B buy a Stock &
book on seller B Transaction
Order are
user B is just perfectly
processed synchronize
16. + SQL don’t solve all the data processing
expression.
17. +
Some javascripts facts
n Run for server needs at the beginning
n Netscape Server in 1996, and then in IIS
n Clearly a major language
n Run on
n Browser
n Mobile
n Servers
n Easy to integrate
n Most peoples know it
n Most used language
on github
n Event driven
18. +
So, can we use
javascript as a data
processing
language ?
19. +
Data processing is focus on
n Find
n Filter
n Manage collection
n CRUD order
20. +
Map / reduce => the big bang of
new data processing
n Atomize the problem
Get a k/v data
n Easy to parallelize
n From the functional
Map : transform data to what you
programing model need (apply function)
Reduce : filter data & aggregate
Get the result
21. Do you wanna some functional
+
programing ?
Javascript is so flexible than we can apply several
patern on top of the language
29. +
Put some real time
n Lots lots of noSQL DB handle a _change_ pipe :
n All datas and updates stream
n Bind it on a websocket : put some real time on your
application
30. +
Data as a Service
Various
backen DB
API
RESTFull
API clients
• Full web client : html5
+ local storage
• Mobile : phonegapp
or native
• Other servers app
31. +
Data as a Service
n Data as others service
n With the same language the application
n Build sync algorithm to start offline / online software
n Some protocol : atom, gdata, oData
n Some popular API : S3, twitter, EC2…
n Security and access layer : oauth…
32. +
DataBase as a Service
n Xeround
n Amazon dynamo
n Lots of heroku addon
n Kinvey
PaaS
33. +
Transparent data consumption
n Webkit JavaScriptCore
n REST / JSON
n Data Classes
n auto-updatable
n accessors Atomatic data access
framework
n events
n Methods
n Cool html5 IDE
n Best use case : work oriented app
39. +
Thx for Listening & Q/A time
Thx to the http://twitter.com/waxzce
http://qconlondon.com Quentin ADAM on google ;-)
quentin.adam@clever-cloud.com
n http://www.clever-cloud.com
clever n http://engineering.clever-cloud.com/
cloud