SlideShare a Scribd company logo
@nicolas_frankel
With Hazelcast In-Memory Data Grid
3 performances improvement
in your microservices
architecture
@nicolas_frankel
• Previously developer, team lead,
architect, solutions architect
• Developer Advocate
• Pragmatic but curious
Me, myself and I
@nicolas_frankel
Hazelcast
HAZELCAST IMDG is an operational,
in-memory, distributed computing
platform that manages data using
in-memory storage, and performs
parallel execution for breakthrough
application speed and scale.
HAZELCAST JET is the ultra fast,
application embeddable, 3rd
generation stream processing
engine for low latency batch
and stream processing.
@nicolas_frankel
• Componentization via Services
• Smart endpoints and dumb pipes
• Decentralized Governance
• Decentralized Data Management
• Infrastructure Automation
• Design for failure
• Evolutionary Design
• Organized around Business Capabilities
• Products not Projects
Microservices: a tentative definition
https://martinfowler.com/articles/microservices.html
@nicolas_frankel
A benefit: scalability
https://martinfowler.com/articles/microservices.html
@nicolas_frankel
Do you spot the difference?
@nicolas_frankel
« You have to be in a really unusual spot to see in-
process function calls turn into a performance hot spot
these days, but remote calls are slow. If your service
calls half-a-dozen remote services, each which calls
another half-a-dozen remote services, these response
times add up to some horrible latency
characteristics. »
-- https://martinfowler.com/articles/microservice-trade-offs.html
Distributed systems
@nicolas_frankel
• The network is reliable
• Latency is zero
• Bandwidth is infinite
• The network is secure
• Topology doesn't change
• There is one administrator
• Transport cost is zero
• The network is homogeneous
Fallacies of distributed computing
https://yourlogicalfallacyis.com/
@nicolas_frankel
More like that…
@nicolas_frankel
No, like that!
@nicolas_frankel
Fast vs. up-to-date
Trade-off
@nicolas_frankel
@nicolas_frankel
Let’s use a hash map!
• Unbounded
• No eviction strategy
• No TTL
• etc.
Caching?
@nicolas_frankel
• A distributed object store
• Think distributed hash map
In-Memory Data Grid
@nicolas_frankel
• Database access
• HTTP call
• Session data
Caching use-cases in µservices
@nicolas_frankel
• Object-Relational Mapping
framework
• Quite widespread
• JPA implementation
Hibernate
@nicolas_frankel
• Level 1 cache
• Implemented by default
• Related to the Session object
• Level 2 cache
• Optional
• Multiple integrations available
Hibernate
@nicolas_frankel
• The cache doesn’t contain the key
1. Load from the database
2. Put it in the cache
• The cache contains the key
1. Return it
How it reads
@nicolas_frankel
Create or update the cached value
How it writes
@nicolas_frankel
@nicolas_frankel
• The code only interacts with
Hazelcast
• Registered listeners allow to write
to the database
• Sync or async
Alternative
@nicolas_frankel
• Catalog service
• Stock service
• Pricing service
• Cart service
• Recommendation service
• Payment service
• etc.
E-commerce architecture
@nicolas_frankel
HTTP and cache
• Could be implemented manually
• But there’s a Java API for that!
@nicolas_frankel
• Specification
• Multiple implementations
• Integrated with Spring
JCache
@nicolas_frankel
@nicolas_frankel
Session data in cluster nodes
@nicolas_frankel
Standards?
@nicolas_frankel
1. Filter-based
2. Spring Session integration
3. Direct Tomcat integration
• Per-node configuration
• Or through Spring Boot embedded
4. Direct Jetty integration
Hazelcast to the rescue!
@nicolas_frankel
@nicolas_frankel
Takeaways
• Scalability and performance are not the same
• Caching helps performance
• The cost is stale data
• Hazelcast IMDG provides several integration-points
for caching across different areas
• Database access
• HTTP call
• Session data
@nicolas_frankel
• https://blog.frankel.ch/
• @nicolas_frankel
• https://git.io/JenXz
Thanks

More Related Content

What's hot (15)

PDF
Ultralight data movement for IoT with SDC Edge. Guglielmo Iozzia - Optum
Data Driven Innovation
 
PPTX
WSO2 Guest Webinar: Building Enterprise Awareness with API Analytics in the A...
WSO2
 
PDF
Batch and Interactive Analytics: From Data to Insight
WSO2
 
PDF
Real-time Operational Intelligence for machine data
jKool
 
PDF
Data Con LA 2018 - Enabling real-time exploration and analytics at scale at H...
Data Con LA
 
PPTX
Closing Keynote
Neo4j
 
PDF
Migrating a legacy logging system: Etsy’s journey to Elastic Cloud
Elasticsearch
 
PPTX
Zsolt Várnai, Principal Software Engineer at Skyscanner - "The advantages of...
Dataconomy Media
 
PDF
How KeyBank Used Elastic to Build an Enterprise Monitoring Solution
Elasticsearch
 
PPT
Data mining tools used in business intelligence
Nithya Ravi
 
PPTX
OpenNebulaconf2017EU: OpenNebula 5.4 and Beyond by Tino Vázquez and Ruben S. ...
OpenNebula Project
 
PDF
PyData London Bokeh Tutorial - Bryan Van de Ven
PyData
 
PDF
HPCC Systems Engineering Summit: Community Use Case: Because Who Has Time for...
HPCC Systems
 
PPTX
Nagios Conference 2014 - Scott Wilkerson - Getting Started with Nagios Networ...
Nagios
 
PPTX
Internet of things getting started
Omkar Khair
 
Ultralight data movement for IoT with SDC Edge. Guglielmo Iozzia - Optum
Data Driven Innovation
 
WSO2 Guest Webinar: Building Enterprise Awareness with API Analytics in the A...
WSO2
 
Batch and Interactive Analytics: From Data to Insight
WSO2
 
Real-time Operational Intelligence for machine data
jKool
 
Data Con LA 2018 - Enabling real-time exploration and analytics at scale at H...
Data Con LA
 
Closing Keynote
Neo4j
 
Migrating a legacy logging system: Etsy’s journey to Elastic Cloud
Elasticsearch
 
Zsolt Várnai, Principal Software Engineer at Skyscanner - "The advantages of...
Dataconomy Media
 
How KeyBank Used Elastic to Build an Enterprise Monitoring Solution
Elasticsearch
 
Data mining tools used in business intelligence
Nithya Ravi
 
OpenNebulaconf2017EU: OpenNebula 5.4 and Beyond by Tino Vázquez and Ruben S. ...
OpenNebula Project
 
PyData London Bokeh Tutorial - Bryan Van de Ven
PyData
 
HPCC Systems Engineering Summit: Community Use Case: Because Who Has Time for...
HPCC Systems
 
Nagios Conference 2014 - Scott Wilkerson - Getting Started with Nagios Networ...
Nagios
 
Internet of things getting started
Omkar Khair
 

Similar to Voxxed Days Cluj - 3 performance improvements with Hazelcast IMDG in your microservices architecture (20)

PPTX
Zero-downtime deployment on Kubernetes with Hazelcast
Nicolas Fränkel
 
PPTX
GeekOut - Configuration Management with Kubernetes, a Spring-Boot use-case
Nicolas Fränkel
 
PPTX
JFuture - Battle of the circuit breakers
Nicolas Fränkel
 
PPTX
Kubernetes Online Meetup - Battle of the Circuit Breakers
Nicolas Fränkel
 
PPTX
GOTO Berlin - Battle of the Circuit Breakers: Resilience4J vs Istio
Nicolas Fränkel
 
PPTX
OSAD - Battle of the Circuit Breakers
Nicolas Fränkel
 
PPTX
DevTernity - OOP in the enterprise
Nicolas Fränkel
 
PPTX
Devclub.lv - Introduction to stream processing
Nicolas Fränkel
 
PPTX
BigData conference - Introduction to stream processing
Nicolas Fränkel
 
PPTX
XP Days Ukraine - Zero-downtime deployment with Kubernetes, Spring Boot and F...
Nicolas Fränkel
 
PPTX
VoxxedDays Cluj - Zero-downtime deployment with Kubernetes, Spring Boot and F...
Nicolas Fränkel
 
PPTX
JCon - Zero-Downtime-Deployment with Kubernetes, Spring Boot and Flyway
Nicolas Fränkel
 
PPTX
kafka simplicity and complexity
Paolo Platter
 
PDF
20160331 sa introduction to big data pipelining berlin meetup 0.3
Simon Ambridge
 
PDF
Data Pipelines with Spark & DataStax Enterprise
DataStax
 
PPTX
DevOpsDays Madrid - Zero-downtime deployment with Kubernetes, Spring Boot and...
Nicolas Fränkel
 
PPTX
Databricks clusters in autopilot mode
Prakash Chockalingam
 
PDF
Zero-downtime Deployment on Kubernetes
All Things Open
 
PPTX
OSCONF Koshi - Zero downtime deployment with Kubernetes, Flyway and Spring Boot
Nicolas Fränkel
 
PDF
QCon 2015 - Microservices Track Notes
Abdul Basit Munda
 
Zero-downtime deployment on Kubernetes with Hazelcast
Nicolas Fränkel
 
GeekOut - Configuration Management with Kubernetes, a Spring-Boot use-case
Nicolas Fränkel
 
JFuture - Battle of the circuit breakers
Nicolas Fränkel
 
Kubernetes Online Meetup - Battle of the Circuit Breakers
Nicolas Fränkel
 
GOTO Berlin - Battle of the Circuit Breakers: Resilience4J vs Istio
Nicolas Fränkel
 
OSAD - Battle of the Circuit Breakers
Nicolas Fränkel
 
DevTernity - OOP in the enterprise
Nicolas Fränkel
 
Devclub.lv - Introduction to stream processing
Nicolas Fränkel
 
BigData conference - Introduction to stream processing
Nicolas Fränkel
 
XP Days Ukraine - Zero-downtime deployment with Kubernetes, Spring Boot and F...
Nicolas Fränkel
 
VoxxedDays Cluj - Zero-downtime deployment with Kubernetes, Spring Boot and F...
Nicolas Fränkel
 
JCon - Zero-Downtime-Deployment with Kubernetes, Spring Boot and Flyway
Nicolas Fränkel
 
kafka simplicity and complexity
Paolo Platter
 
20160331 sa introduction to big data pipelining berlin meetup 0.3
Simon Ambridge
 
Data Pipelines with Spark & DataStax Enterprise
DataStax
 
DevOpsDays Madrid - Zero-downtime deployment with Kubernetes, Spring Boot and...
Nicolas Fränkel
 
Databricks clusters in autopilot mode
Prakash Chockalingam
 
Zero-downtime Deployment on Kubernetes
All Things Open
 
OSCONF Koshi - Zero downtime deployment with Kubernetes, Flyway and Spring Boot
Nicolas Fränkel
 
QCon 2015 - Microservices Track Notes
Abdul Basit Munda
 
Ad

More from Nicolas Fränkel (20)

PPTX
SnowCamp - Adding search to a legacy application
Nicolas Fränkel
 
PPTX
Un CV de dévelopeur toujours a jour
Nicolas Fränkel
 
PDF
jLove - A Change-Data-Capture use-case: designing an evergreen cache
Nicolas Fränkel
 
PPTX
ADDO - Your own Kubernetes controller, not only in Go
Nicolas Fränkel
 
PPTX
TestCon Europe - Mutation Testing to the Rescue of Your Tests
Nicolas Fränkel
 
PPTX
OSCONF Jaipur - A Hitchhiker's Tour to Containerizing a Java application
Nicolas Fränkel
 
PPTX
GeekcampSG 2020 - A Change-Data-Capture use-case: designing an evergreen cache
Nicolas Fränkel
 
PPTX
OSCONF Hyderabad - Shorten all URLs!
Nicolas Fränkel
 
PPTX
JOnConf - A CDC use-case: designing an Evergreen Cache
Nicolas Fränkel
 
PPTX
London In-Memory Computing Meetup - A Change-Data-Capture use-case: designing...
Nicolas Fränkel
 
PPTX
JUG Tirana - Introduction to data streaming
Nicolas Fränkel
 
PPTX
Java.IL - Your own Kubernetes controller, not only in Go!
Nicolas Fränkel
 
PPTX
vJUG - Introduction to data streaming
Nicolas Fränkel
 
PPTX
London Java Community - An Experiment in Continuous Deployment of JVM applica...
Nicolas Fränkel
 
PPTX
OSCONF - Your own Kubernetes controller: not only in Go
Nicolas Fränkel
 
PPTX
vKUG - Migrating Spring Boot apps from annotation-based config to Functional
Nicolas Fränkel
 
PPTX
AllTheTalks.online - A Streaming Use-Case: And Experiment in Continuous Deplo...
Nicolas Fränkel
 
PPTX
ING Meetup - Migrating Spring Boot Config Annotations to Functional with Kotlin
Nicolas Fränkel
 
PPTX
JUG SF - Introduction to data streaming
Nicolas Fränkel
 
PPTX
SCALE - Stream processing and Open Data, a match made in Heaven
Nicolas Fränkel
 
SnowCamp - Adding search to a legacy application
Nicolas Fränkel
 
Un CV de dévelopeur toujours a jour
Nicolas Fränkel
 
jLove - A Change-Data-Capture use-case: designing an evergreen cache
Nicolas Fränkel
 
ADDO - Your own Kubernetes controller, not only in Go
Nicolas Fränkel
 
TestCon Europe - Mutation Testing to the Rescue of Your Tests
Nicolas Fränkel
 
OSCONF Jaipur - A Hitchhiker's Tour to Containerizing a Java application
Nicolas Fränkel
 
GeekcampSG 2020 - A Change-Data-Capture use-case: designing an evergreen cache
Nicolas Fränkel
 
OSCONF Hyderabad - Shorten all URLs!
Nicolas Fränkel
 
JOnConf - A CDC use-case: designing an Evergreen Cache
Nicolas Fränkel
 
London In-Memory Computing Meetup - A Change-Data-Capture use-case: designing...
Nicolas Fränkel
 
JUG Tirana - Introduction to data streaming
Nicolas Fränkel
 
Java.IL - Your own Kubernetes controller, not only in Go!
Nicolas Fränkel
 
vJUG - Introduction to data streaming
Nicolas Fränkel
 
London Java Community - An Experiment in Continuous Deployment of JVM applica...
Nicolas Fränkel
 
OSCONF - Your own Kubernetes controller: not only in Go
Nicolas Fränkel
 
vKUG - Migrating Spring Boot apps from annotation-based config to Functional
Nicolas Fränkel
 
AllTheTalks.online - A Streaming Use-Case: And Experiment in Continuous Deplo...
Nicolas Fränkel
 
ING Meetup - Migrating Spring Boot Config Annotations to Functional with Kotlin
Nicolas Fränkel
 
JUG SF - Introduction to data streaming
Nicolas Fränkel
 
SCALE - Stream processing and Open Data, a match made in Heaven
Nicolas Fränkel
 
Ad

Recently uploaded (20)

PDF
TheFutureIsDynamic-BoxLang witch Luis Majano.pdf
Ortus Solutions, Corp
 
PDF
NEW-Viral>Wondershare Filmora 14.5.18.12900 Crack Free
sherryg1122g
 
PDF
IObit Driver Booster Pro 12.4.0.585 Crack Free Download
henryc1122g
 
PPTX
Empowering Asian Contributions: The Rise of Regional User Groups in Open Sour...
Shane Coughlan
 
PDF
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
PDF
Driver Easy Pro 6.1.1 Crack Licensce key 2025 FREE
utfefguu
 
PDF
Download Canva Pro 2025 PC Crack Full Latest Version
bashirkhan333g
 
PDF
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
PDF
IDM Crack with Internet Download Manager 6.42 Build 43 with Patch Latest 2025
bashirkhan333g
 
PPTX
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
PDF
AOMEI Partition Assistant Crack 10.8.2 + WinPE Free Downlaod New Version 2025
bashirkhan333g
 
PDF
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
PDF
Odoo CRM vs Zoho CRM: Honest Comparison 2025
Odiware Technologies Private Limited
 
PDF
Technical-Careers-Roadmap-in-Software-Market.pdf
Hussein Ali
 
PDF
Add Background Images to Charts in IBM SPSS Statistics Version 31.pdf
Version 1 Analytics
 
PDF
Wondershare PDFelement Pro Crack for MacOS New Version Latest 2025
bashirkhan333g
 
PDF
AI + DevOps = Smart Automation with devseccops.ai.pdf
Devseccops.ai
 
PPTX
AEM User Group: India Chapter Kickoff Meeting
jennaf3
 
PPTX
Foundations of Marketo Engage - Powering Campaigns with Marketo Personalization
bbedford2
 
PDF
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
TheFutureIsDynamic-BoxLang witch Luis Majano.pdf
Ortus Solutions, Corp
 
NEW-Viral>Wondershare Filmora 14.5.18.12900 Crack Free
sherryg1122g
 
IObit Driver Booster Pro 12.4.0.585 Crack Free Download
henryc1122g
 
Empowering Asian Contributions: The Rise of Regional User Groups in Open Sour...
Shane Coughlan
 
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
Driver Easy Pro 6.1.1 Crack Licensce key 2025 FREE
utfefguu
 
Download Canva Pro 2025 PC Crack Full Latest Version
bashirkhan333g
 
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
IDM Crack with Internet Download Manager 6.42 Build 43 with Patch Latest 2025
bashirkhan333g
 
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
AOMEI Partition Assistant Crack 10.8.2 + WinPE Free Downlaod New Version 2025
bashirkhan333g
 
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
Odoo CRM vs Zoho CRM: Honest Comparison 2025
Odiware Technologies Private Limited
 
Technical-Careers-Roadmap-in-Software-Market.pdf
Hussein Ali
 
Add Background Images to Charts in IBM SPSS Statistics Version 31.pdf
Version 1 Analytics
 
Wondershare PDFelement Pro Crack for MacOS New Version Latest 2025
bashirkhan333g
 
AI + DevOps = Smart Automation with devseccops.ai.pdf
Devseccops.ai
 
AEM User Group: India Chapter Kickoff Meeting
jennaf3
 
Foundations of Marketo Engage - Powering Campaigns with Marketo Personalization
bbedford2
 
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 

Voxxed Days Cluj - 3 performance improvements with Hazelcast IMDG in your microservices architecture

Editor's Notes

  • #10: @startuml participant "a:A" as a boundary "Layer X" as x boundary "Layer Y" as y boundary "Layer Z" as z participant "b:B" as b activate a a -> x: call() activate x x -> y: call() activate y y -> z: call() activate z z -> b: call() hide footbox @enduml
  • #11: participant "a:A" as a boundary "Layer X" as x boundary "Layer Y" as y boundary "Layer Z" as z participant "b:B" as b activate a a -> x: call() activate x x -> y: call() activate y y -> z: call() activate z z -> b: call() z <-- b y <-- z deactivate z x <-- y deactivate y a <-- x deactivate x deactivate a skinparam dpi 300 hide footbox