Node.js is a very popular framework for developing asynchronous, event-driven, reactive applications. Red Hat JBoss Data Grid, an in-memory distributed database designed for fast access to large volumes of data and scalability, has recently gained compatibility with Node.js letting reactive applications use it as a persistence layer. Thanks to near caching, JBoss Data Grid offers excellent response times for data queried regularly, and its continuous remote event support means data can get pushed from the data grid to the Node.js application instead of having to wait for the data grid to serve it. In this session, we'll show how to build Node.js applications that use JBoss Data Grid as a persistence layer.
3. Galder Zamarreño Arrizabalaga
• Senior Software Engineer @ Red Hat
• Infinispan / JBoss Data Grid co-founder
• JSR-107 expert group member
• Keen interest in functional programming
4. Divya Mehra
• Principal Product Manager @ Red Hat
• Responsible for Red Hat JBoss Data Grid
roadmap
5. Agenda
• Introduction to Red Hat JBoss Data Grid
• Building a reactive application with Node.js and Red Hat JBoss Data Grid
8. Why in-memory data management?
• Large volume, velocity, and
variability of raw data
• Enterprises that can extract
meaningful, actionable information
faster have competitive advantage
• Increase revenues
• Reduce risks
9. E-commerce website
Challenge: Maintain page load times, while computing relevant purchase recommendations from
data from different sources:
• Mobile device → location
• Social graph →what friends are buying or recommending
• 3rd party sellers or partner sites -> current promotions
• User’s purchase or click-through history -> behavioral targeting
Relevant recommendation can increase conversion by 25%
However, each 1-second increase in page load time → up 10% drop in overall revenue
Can your data platform scale out to large volumes of often-changing data without affecting
application performance?
10. SaaS Application Provider
Challenge: Users of SaaS application should be unaffected by spikes in demand, node
failure, and system upgrades of the data platform.
Loss of availability and performance will affect SaaS app provider’s SLA to its
customers
• Revenue loss
• Reputation impact
Does your data platform support high availability, elasticity, and rolling
upgrades, necessary for a cloud-native architecture?
11. Telecom service provider
Challenge: Real-time billing and usage information for thousands of concurrent users
• A customer sends a text, uses data, or makes a call
• Transaction is recorded in the data platform, and the customer’s total usage and bill is
updated immediately triggered by creation of this new entry.
Can your business logic react to changes in the data in real-time and at
scale?
13. Leader in Forrester Wave™: In-Memory Data Grids, Q3 2015
Ahead in both evaluation
dimensions vs. open source
competitors
1.Current offering
2.Strategy and vision
Download free from:
https://engage.redhat.com/
forrester-data-grid-
s-201509240128
16. Elm
• Functional language for Web
• Compiles to Javascript
• No runtime errors in practice
• Statically typed, friendly errors
• Help build well-architected code
• Easy to learn! Easy to use!
17. Event Manager Microservice
• Node.js middleware
• Based on Express.js
• Listens for HTTP on port 3000
• Uses JDG 7 Node.js client
• Requires Node 0.10 or higher
18. JDG Persistence
• Runs a JDG 7 server domain
• Formed of 3 nodes
• Each element stored in 2 nodes
• Redundancy via partial replication
• Redundancy for failover
33. Credits
Window by Oleg Frolov from the Noun Project
Server Error by Montu Yadav from the Noun Project
Databases by Oliviu Stoian from the Noun Project