SlideShare a Scribd company logo
Migrating From Java EE To Cloud-Native
Reactive Systems
With Markus Eisele, Director of Developer Advocacy at Lightbend, Inc.
WEBINAR | THURSDAY JUN 6TH, 9:00 AM PT / 12:00 ET / 16:00 GMT / 18:00 CET
@myfear
3
4
Java developers
worldwide
of the Fortune 500
are using Java EE
of companies use Java to build
over 80% of their applications
10M+ 90% 43%
Stability Specifications Availability of
developers
#1 #2 #3
What Technical Direction should Java EE evolve into?
Eclipse Foundation survey of over 1800 developers
5
Top 3
for building microservices include Jersey, Spring, Eclipse
MicroProfile, Node.js & Kubernetes
Currently building microservices or planning to <1 yr
Say large memory requirements most challenging
aspect of working with Java EE
Java EE chosen for Java applications is stability
Say Foundation should prioritize better support for microservices
https://jakarta.ee/news/2018/04/24/jakarta-ee-community-survey/
67%
Top Frameworks
1. Better support for microservices
2. Native integration with Kubernetes
3. A faster pace of innovation
40%
#1 Reason
60%
critical areas cited
for improvement
But are Java EE
Applications Still Suitable Today?
http://www.internetlivestats.com/internet-users/
J2EE
Spring
RoR
Akka
Reactive Manifesto
Microservices
Which technology to choose?
When Building a New Business Application,
Which Technology do You Use?
Twitter survey on 5.16.19*
8
Other
Reactive (e.g. Play)
Microprofile (services)
Jave EE (monolith) 17%
28%
30%
25%
*962 respondents
Cloud Native And The Future Of Java EE
Complexity kills development velocity and only fosters infrequent releases
• Development team agility is constantly blocked.
• Big teams and heavy apps create long release cycles.
• Complex code bases and fearful engineers lead to technical debt.
Scaling monoliths is too expensive for the cloud
• Monoliths are difficult and expensive to scale.
• Monoliths lead to resource inefficiency.
9
Streams and ‘data in motion’ need to be supported
• Real-time streaming data is a first-class
citizen in today’s applications.
• Insights and value must be harvested
from data.
• Non-traditional data persistence
models must be used.
• Shortened time-frames for putting
changes into production
• New business models evolve from existing
ones
• New questions need to be answered by
existing applications
• Datacenter costs need to go down
constantly
10
11
It’s increasingly obvious that the old,
linear, three-tier architecture model
is obsolete.
- Gartner
“
Monoliths Have Allowed Us to Take Consistency for Granted
With a single database, the world is easy
Transactions give us an illusion of a single, consistent, current state
• We can think of our data as a static thing
• It sits there at rest, waiting for our operation
• Failure is handled
• No partial updates
• Consistency is enforced
• Concurrency is handled
• No uncommitted reads
12
Transaction 1
Transaction 2
With Distributed Applications,
Our Consistent View of the World Breaks Down
With many databases, the world is hard
There are now many states, all constantly changing
• Different services have different
ideas of current state
• Our data is in motion, not at rest, not static
• Failure is not handled for us
• Partial updates likely
• No enforcement of consistency
• Concurrency is inherent
• Operations take time to propagate
13
G
?
C
?
F
?
B
?
E
?
A
?
D
?
What worked in monoliths
CRUD
• Depends on consistent single state
Relying on transactions
• Depends on a single database
REST
• Depends on failure and consistency
being handled in the database
14
Needed for distributed applications
Events
• Events convey facts
• Facts remain true regardless of what else happens in
the system
At least once messaging
• Ensures events can be reliably propagated throughout
the system
Stream-centric view
• Our data is the events
• Some may be at rest, some are in motion
• No single state
• Rather, system is constantly converging, propagating
• Control this, using streams
What Worked in Monoliths Will Not Work Anymore
The Shift Towards Real-Time Streaming Systems
Design
distributed
systems and
Reactive
principles
• Message-driven means more than just non-
blocking I/O.
• Resilience goes further than fault tolerance.
• Elasticity means efficient, cost-conscious
scalability.
• Responsive systems always serve
customers.
Take a lesson from Events-First
Domain Driven Design
• Use encapsulation to improve
flexibility.
• Apply isolation to encourage loose
coupling and avoid the cascade
effect.
• Separate domains of concern to
reduce complexity.
17
Bounded Context Bounded Context
Search
Service
Search
Service
Product
Service
Product
Service
Product
Service
Product
Service
Search
Cache
Product DB
Prioritize resilience before thinking about
elastic scaling in the cloud
• Automate supervision to minimize
human intervention.
• Isolate and contain failures to
enable self-healing.
• Master resilience and elasticity to
achieve system responsiveness.
18
Utilize a streaming architecture to achieve distribution,
concurrency, supervision, and resilience
19
Kafka
myTopic
.subscribe()
Akka Streams
.map(kafkaMessage ->
new WebSocketMessage(
kafkaMessage.getPayload()
)
)
WebSocket
response
.send(publisher)
Reactive Streams
Backpressure
Reactive Streams
Messages
By modelling a system using streams, we embrace events, no longer need a single state, and can
take eventual consistency for granted
Distributed, Reactive Systems Unlock Higher
Cloud ROI
21
“Akka has consistently allowed us to cut
80% of infrastructure, or increase overall
application performance by 5x, when
compared to the traditional systems we
replaced.”
- Akara Sucharitakul, Principal MTS at PayPal
“
We enable Product teams to:
• Focus on the business logic, not low-
level protocols.
• Eliminate bottlenecks and single points
of failure.
• Realize true ROI from investing in cloud
infrastructure.
• Focus on what matters to your
business.
22
Instant Advantages with Lightbend
We enable Product teams to:
• Enhancing customer engagement with data-driven insights
• Unleashing innovation to protect or capture markets
• Improving agility and time to value
• Reducing compute costs while scaling elastically
• Increasing developer happiness and productivity
24
From Java EE To Cloud Native: The End Of
The Heavyweight Era
How to modernize traditional Java EE
applications for cloud-native infrastructure
WHITE PAPER | BY MARKUS EISELE AND JAMES ROPER, LIGHTBEND INC.
28
http://bit.ly/JavaEE2CloudNative
Reactive Microservices
Architecture
29
Written for architects and developers that must quickly
gain a fundamental understanding of microservice-based
architectures, this free O’Reilly report explores the journey from
SOA to microservices, discusses approaches to dismantling your
monolith, and reviews the key tenets of a Reactive microservice:
• Isolate all the Things
• Act Autonomously
• Do One Thing, and Do It Well
• Own Your State, Exclusively
• Embrace Asynchronous Message-Passing
• Stay Mobile, but Addressable
• Collaborate as Systems to Solve Problems
http://bit.ly/ReactiveMicroservice
Developing
Reactive Microservices
30
The detailed example in this report is based on Lagom,
a new framework that helps you follow the requirements
for building distributed, reactive systems.
• Get an overview of the Reactive Programming model and
basic requirements for developing reactive microservices
• Learn how to create base services, expose endpoints, and
then connect them with a simple, web-based user interface
• Understand how to deal with persistence, state, and clients
• Use integration technologies to start a successful migration
away from legacy systems
http://bit.ly/DevelopReactiveMicroservice
Modern Java EE
Design Patterns
• Understand the challenges of starting a
greenfield development vs tearing apart an
existing brownfield application into services
• Examine your business domain to see if microservices would
be a good fit
• Explore best practices for automation, high availability, data
separation, and performance
• Align your development teams around business capabilities
and responsibilities
• Inspect design patterns such as aggregator, proxy, pipeline,
or shared resources to model service interactions
31
http://bit.ly/SustainableEnterprise
Thank You Page
Markus Eisele
@myfear
blog.eisele.net

More Related Content

What's hot (20)

PDF
IBM and Lightbend Build Integrated Platform for Cognitive Development
Lightbend
 
PDF
Fan-out, fan-in & the multiplexer: Replication recipes for global platform di...
HostedbyConfluent
 
PPT
The eBay Architecture: Striking a Balance between Site Stability, Feature Ve...
Randy Shoup
 
PDF
The Future of ETL - Strata Data New York 2018
confluent
 
PDF
Building a Modern, Scalable Cyber Intelligence Platform with Apache Kafka | J...
HostedbyConfluent
 
PDF
Capgemini: Observability within the Dutch government
Elasticsearch
 
PDF
Journey to the Modern App with Containers, Microservices and Big Data
Lightbend
 
PDF
Transformation During a Global Pandemic | Ashish Pandit and Scott Lee, Univer...
HostedbyConfluent
 
PPTX
Apache Kafka and the Data Mesh | Ben Stopford and Michael Noll, Confluent
HostedbyConfluent
 
PDF
Streaming to a new Jakarta EE / JOTB19
Markus Eisele
 
PPTX
20 mins to Faking the DevOps Unicorn by Matt williams, Datadog
Docker, Inc.
 
PPTX
Comparison of various streaming technologies
Sachin Aggarwal
 
PDF
Kafka Summit SF 2017 - Running Kafka for Maximum Pain
confluent
 
PDF
The Future of ETL Isn't What It Used to Be
confluent
 
PPTX
Internet of Things and Multi-model Data Infrastructure
SingleStore
 
PPTX
Reactive Revealed Part 2: Scalability, Elasticity and Location Transparency i...
Legacy Typesafe (now Lightbend)
 
PDF
Airbnb, From Monolith to Microservices: How to Scale Your Architecture, Futur...
New Relic
 
PDF
End of the Myth: Ultra-Scalable Transactional Management by Ricardo Jiménez-P...
Big Data Spain
 
PDF
Model-driven and low-code development for event-based systems | Bobby Calderw...
HostedbyConfluent
 
PPTX
ADDO Open Source Observability Tools
Mickey Boxell
 
IBM and Lightbend Build Integrated Platform for Cognitive Development
Lightbend
 
Fan-out, fan-in & the multiplexer: Replication recipes for global platform di...
HostedbyConfluent
 
The eBay Architecture: Striking a Balance between Site Stability, Feature Ve...
Randy Shoup
 
The Future of ETL - Strata Data New York 2018
confluent
 
Building a Modern, Scalable Cyber Intelligence Platform with Apache Kafka | J...
HostedbyConfluent
 
Capgemini: Observability within the Dutch government
Elasticsearch
 
Journey to the Modern App with Containers, Microservices and Big Data
Lightbend
 
Transformation During a Global Pandemic | Ashish Pandit and Scott Lee, Univer...
HostedbyConfluent
 
Apache Kafka and the Data Mesh | Ben Stopford and Michael Noll, Confluent
HostedbyConfluent
 
Streaming to a new Jakarta EE / JOTB19
Markus Eisele
 
20 mins to Faking the DevOps Unicorn by Matt williams, Datadog
Docker, Inc.
 
Comparison of various streaming technologies
Sachin Aggarwal
 
Kafka Summit SF 2017 - Running Kafka for Maximum Pain
confluent
 
The Future of ETL Isn't What It Used to Be
confluent
 
Internet of Things and Multi-model Data Infrastructure
SingleStore
 
Reactive Revealed Part 2: Scalability, Elasticity and Location Transparency i...
Legacy Typesafe (now Lightbend)
 
Airbnb, From Monolith to Microservices: How to Scale Your Architecture, Futur...
New Relic
 
End of the Myth: Ultra-Scalable Transactional Management by Ricardo Jiménez-P...
Big Data Spain
 
Model-driven and low-code development for event-based systems | Bobby Calderw...
HostedbyConfluent
 
ADDO Open Source Observability Tools
Mickey Boxell
 

Similar to Migrating From Java EE To Cloud-Native Reactive Systems (20)

PDF
Java in the age of containers - JUG Frankfurt/M
Markus Eisele
 
PDF
Streaming to a new Jakarta EE
Markus Eisele
 
PDF
Streaming to a New Jakarta EE
J On The Beach
 
PPTX
Understanding Microservices
vguhesan
 
PDF
Cloud Native In-Depth
Siva Rama Krishna Chunduru
 
PPTX
Melbourne Microservices Meetup: Agenda for a new Architecture
Saul Caganoff
 
PDF
Java in the Age of Containers and Serverless
Markus Eisele
 
PDF
Modernising Change - Lime Point - Confluent - Kong
confluent
 
PDF
PaaS with Java
Eberhard Wolff
 
PDF
Nine Neins - where Java EE will never take you
Markus Eisele
 
PDF
Microservices for Java Architects (Madison-Milwaukee, April 28-9, 2015)
Derek Ashmore
 
PDF
Microservices for java architects schamburg-2015-05-19
Derek Ashmore
 
PPTX
Azure Application Architecture Guide
Masashi Narumoto
 
PPTX
Mykhailo Hryhorash: Архітектура IT-рішень (Частина 1) (UA)
content75
 
PDF
Architectural Decisions: Smoothly and Consistently
Comsysto Reply GmbH
 
PPTX
Mykhailo Hryhorash: Архітектура IT-рішень (Частина 1) (UA)
Lviv Startup Club
 
PDF
Cloud-native Data: Every Microservice Needs a Cache
cornelia davis
 
PDF
Ultra-scale e-Commerce Transaction Services with Lean Middleware
WSO2
 
PPTX
Introduction to Microservices Patterns
arconsis
 
PPTX
Introduction to Microservices Patterns
Dimosthenis Botsaris
 
Java in the age of containers - JUG Frankfurt/M
Markus Eisele
 
Streaming to a new Jakarta EE
Markus Eisele
 
Streaming to a New Jakarta EE
J On The Beach
 
Understanding Microservices
vguhesan
 
Cloud Native In-Depth
Siva Rama Krishna Chunduru
 
Melbourne Microservices Meetup: Agenda for a new Architecture
Saul Caganoff
 
Java in the Age of Containers and Serverless
Markus Eisele
 
Modernising Change - Lime Point - Confluent - Kong
confluent
 
PaaS with Java
Eberhard Wolff
 
Nine Neins - where Java EE will never take you
Markus Eisele
 
Microservices for Java Architects (Madison-Milwaukee, April 28-9, 2015)
Derek Ashmore
 
Microservices for java architects schamburg-2015-05-19
Derek Ashmore
 
Azure Application Architecture Guide
Masashi Narumoto
 
Mykhailo Hryhorash: Архітектура IT-рішень (Частина 1) (UA)
content75
 
Architectural Decisions: Smoothly and Consistently
Comsysto Reply GmbH
 
Mykhailo Hryhorash: Архітектура IT-рішень (Частина 1) (UA)
Lviv Startup Club
 
Cloud-native Data: Every Microservice Needs a Cache
cornelia davis
 
Ultra-scale e-Commerce Transaction Services with Lean Middleware
WSO2
 
Introduction to Microservices Patterns
arconsis
 
Introduction to Microservices Patterns
Dimosthenis Botsaris
 
Ad

More from Lightbend (20)

PDF
IoT 'Megaservices' - High Throughput Microservices with Akka
Lightbend
 
PDF
How Akka Cluster Works: Actors Living in a Cluster
Lightbend
 
PDF
Putting the 'I' in IoT - Building Digital Twins with Akka Microservices
Lightbend
 
PDF
Akka at Enterprise Scale: Performance Tuning Distributed Applications
Lightbend
 
PDF
Detecting Real-Time Financial Fraud with Cloudflow on Kubernetes
Lightbend
 
PDF
Digital Transformation from Monoliths to Microservices to Serverless and Beyond
Lightbend
 
PDF
Akka Anti-Patterns, Goodbye: Six Features of Akka 2.6
Lightbend
 
PDF
Microservices, Kubernetes, and Application Modernization Done Right
Lightbend
 
PDF
Full Stack Reactive In Practice
Lightbend
 
PDF
Akka and Kubernetes: A Symbiotic Love Story
Lightbend
 
PPTX
Scala 3 Is Coming: Martin Odersky Shares What To Know
Lightbend
 
PDF
Running Kafka On Kubernetes With Strimzi For Real-Time Streaming Applications
Lightbend
 
PDF
Designing Events-First Microservices For A Cloud Native World
Lightbend
 
PDF
Scala Security: Eliminate 200+ Code-Level Threats With Fortify SCA For Scala
Lightbend
 
PDF
A Glimpse At The Future Of Apache Spark 3.0 With Deep Learning And Kubernetes
Lightbend
 
PDF
Akka and Kubernetes: Reactive From Code To Cloud
Lightbend
 
PDF
Hands On With Spark: Creating A Fast Data Pipeline With Structured Streaming ...
Lightbend
 
PDF
How Akka Works: Visualize And Demo Akka With A Raspberry-Pi Cluster
Lightbend
 
PDF
Machine Learning At Speed: Operationalizing ML For Real-Time Data Streams
Lightbend
 
PDF
Ready for Fast Data: How Lightbend Enables Teams To Build Real-Time, Streamin...
Lightbend
 
IoT 'Megaservices' - High Throughput Microservices with Akka
Lightbend
 
How Akka Cluster Works: Actors Living in a Cluster
Lightbend
 
Putting the 'I' in IoT - Building Digital Twins with Akka Microservices
Lightbend
 
Akka at Enterprise Scale: Performance Tuning Distributed Applications
Lightbend
 
Detecting Real-Time Financial Fraud with Cloudflow on Kubernetes
Lightbend
 
Digital Transformation from Monoliths to Microservices to Serverless and Beyond
Lightbend
 
Akka Anti-Patterns, Goodbye: Six Features of Akka 2.6
Lightbend
 
Microservices, Kubernetes, and Application Modernization Done Right
Lightbend
 
Full Stack Reactive In Practice
Lightbend
 
Akka and Kubernetes: A Symbiotic Love Story
Lightbend
 
Scala 3 Is Coming: Martin Odersky Shares What To Know
Lightbend
 
Running Kafka On Kubernetes With Strimzi For Real-Time Streaming Applications
Lightbend
 
Designing Events-First Microservices For A Cloud Native World
Lightbend
 
Scala Security: Eliminate 200+ Code-Level Threats With Fortify SCA For Scala
Lightbend
 
A Glimpse At The Future Of Apache Spark 3.0 With Deep Learning And Kubernetes
Lightbend
 
Akka and Kubernetes: Reactive From Code To Cloud
Lightbend
 
Hands On With Spark: Creating A Fast Data Pipeline With Structured Streaming ...
Lightbend
 
How Akka Works: Visualize And Demo Akka With A Raspberry-Pi Cluster
Lightbend
 
Machine Learning At Speed: Operationalizing ML For Real-Time Data Streams
Lightbend
 
Ready for Fast Data: How Lightbend Enables Teams To Build Real-Time, Streamin...
Lightbend
 
Ad

Recently uploaded (20)

PDF
Executive Business Intelligence Dashboards
vandeslie24
 
PPTX
Revolutionizing Code Modernization with AI
KrzysztofKkol1
 
PDF
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
DOCX
Import Data Form Excel to Tally Services
Tally xperts
 
PPTX
Human Resources Information System (HRIS)
Amity University, Patna
 
PDF
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
PDF
Unlock Efficiency with Insurance Policy Administration Systems
Insurance Tech Services
 
PDF
Alexander Marshalov - How to use AI Assistants with your Monitoring system Q2...
VictoriaMetrics
 
PDF
Thread In Android-Mastering Concurrency for Responsive Apps.pdf
Nabin Dhakal
 
PPTX
MiniTool Power Data Recovery Full Crack Latest 2025
muhammadgurbazkhan
 
PDF
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pdf
Varsha Nayak
 
PPTX
The Role of a PHP Development Company in Modern Web Development
SEO Company for School in Delhi NCR
 
PPTX
Feb 2021 Cohesity first pitch presentation.pptx
enginsayin1
 
PDF
Capcut Pro Crack For PC Latest Version {Fully Unlocked} 2025
hashhshs786
 
PPTX
A Complete Guide to Salesforce SMS Integrations Build Scalable Messaging With...
360 SMS APP
 
PDF
Understanding the Need for Systemic Change in Open Source Through Intersectio...
Imma Valls Bernaus
 
PPTX
Java Native Memory Leaks: The Hidden Villain Behind JVM Performance Issues
Tier1 app
 
PDF
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
PDF
Efficient, Automated Claims Processing Software for Insurers
Insurance Tech Services
 
PPTX
Engineering the Java Web Application (MVC)
abhishekoza1981
 
Executive Business Intelligence Dashboards
vandeslie24
 
Revolutionizing Code Modernization with AI
KrzysztofKkol1
 
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
Import Data Form Excel to Tally Services
Tally xperts
 
Human Resources Information System (HRIS)
Amity University, Patna
 
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
Unlock Efficiency with Insurance Policy Administration Systems
Insurance Tech Services
 
Alexander Marshalov - How to use AI Assistants with your Monitoring system Q2...
VictoriaMetrics
 
Thread In Android-Mastering Concurrency for Responsive Apps.pdf
Nabin Dhakal
 
MiniTool Power Data Recovery Full Crack Latest 2025
muhammadgurbazkhan
 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pdf
Varsha Nayak
 
The Role of a PHP Development Company in Modern Web Development
SEO Company for School in Delhi NCR
 
Feb 2021 Cohesity first pitch presentation.pptx
enginsayin1
 
Capcut Pro Crack For PC Latest Version {Fully Unlocked} 2025
hashhshs786
 
A Complete Guide to Salesforce SMS Integrations Build Scalable Messaging With...
360 SMS APP
 
Understanding the Need for Systemic Change in Open Source Through Intersectio...
Imma Valls Bernaus
 
Java Native Memory Leaks: The Hidden Villain Behind JVM Performance Issues
Tier1 app
 
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
Efficient, Automated Claims Processing Software for Insurers
Insurance Tech Services
 
Engineering the Java Web Application (MVC)
abhishekoza1981
 

Migrating From Java EE To Cloud-Native Reactive Systems

  • 1. Migrating From Java EE To Cloud-Native Reactive Systems With Markus Eisele, Director of Developer Advocacy at Lightbend, Inc. WEBINAR | THURSDAY JUN 6TH, 9:00 AM PT / 12:00 ET / 16:00 GMT / 18:00 CET
  • 3. 3
  • 4. 4 Java developers worldwide of the Fortune 500 are using Java EE of companies use Java to build over 80% of their applications 10M+ 90% 43% Stability Specifications Availability of developers #1 #2 #3
  • 5. What Technical Direction should Java EE evolve into? Eclipse Foundation survey of over 1800 developers 5 Top 3 for building microservices include Jersey, Spring, Eclipse MicroProfile, Node.js & Kubernetes Currently building microservices or planning to <1 yr Say large memory requirements most challenging aspect of working with Java EE Java EE chosen for Java applications is stability Say Foundation should prioritize better support for microservices https://jakarta.ee/news/2018/04/24/jakarta-ee-community-survey/ 67% Top Frameworks 1. Better support for microservices 2. Native integration with Kubernetes 3. A faster pace of innovation 40% #1 Reason 60% critical areas cited for improvement
  • 6. But are Java EE Applications Still Suitable Today?
  • 8. When Building a New Business Application, Which Technology do You Use? Twitter survey on 5.16.19* 8 Other Reactive (e.g. Play) Microprofile (services) Jave EE (monolith) 17% 28% 30% 25% *962 respondents
  • 9. Cloud Native And The Future Of Java EE Complexity kills development velocity and only fosters infrequent releases • Development team agility is constantly blocked. • Big teams and heavy apps create long release cycles. • Complex code bases and fearful engineers lead to technical debt. Scaling monoliths is too expensive for the cloud • Monoliths are difficult and expensive to scale. • Monoliths lead to resource inefficiency. 9
  • 10. Streams and ‘data in motion’ need to be supported • Real-time streaming data is a first-class citizen in today’s applications. • Insights and value must be harvested from data. • Non-traditional data persistence models must be used. • Shortened time-frames for putting changes into production • New business models evolve from existing ones • New questions need to be answered by existing applications • Datacenter costs need to go down constantly 10
  • 11. 11 It’s increasingly obvious that the old, linear, three-tier architecture model is obsolete. - Gartner “
  • 12. Monoliths Have Allowed Us to Take Consistency for Granted With a single database, the world is easy Transactions give us an illusion of a single, consistent, current state • We can think of our data as a static thing • It sits there at rest, waiting for our operation • Failure is handled • No partial updates • Consistency is enforced • Concurrency is handled • No uncommitted reads 12 Transaction 1 Transaction 2
  • 13. With Distributed Applications, Our Consistent View of the World Breaks Down With many databases, the world is hard There are now many states, all constantly changing • Different services have different ideas of current state • Our data is in motion, not at rest, not static • Failure is not handled for us • Partial updates likely • No enforcement of consistency • Concurrency is inherent • Operations take time to propagate 13 G ? C ? F ? B ? E ? A ? D ?
  • 14. What worked in monoliths CRUD • Depends on consistent single state Relying on transactions • Depends on a single database REST • Depends on failure and consistency being handled in the database 14 Needed for distributed applications Events • Events convey facts • Facts remain true regardless of what else happens in the system At least once messaging • Ensures events can be reliably propagated throughout the system Stream-centric view • Our data is the events • Some may be at rest, some are in motion • No single state • Rather, system is constantly converging, propagating • Control this, using streams What Worked in Monoliths Will Not Work Anymore
  • 15. The Shift Towards Real-Time Streaming Systems
  • 16. Design distributed systems and Reactive principles • Message-driven means more than just non- blocking I/O. • Resilience goes further than fault tolerance. • Elasticity means efficient, cost-conscious scalability. • Responsive systems always serve customers.
  • 17. Take a lesson from Events-First Domain Driven Design • Use encapsulation to improve flexibility. • Apply isolation to encourage loose coupling and avoid the cascade effect. • Separate domains of concern to reduce complexity. 17 Bounded Context Bounded Context Search Service Search Service Product Service Product Service Product Service Product Service Search Cache Product DB
  • 18. Prioritize resilience before thinking about elastic scaling in the cloud • Automate supervision to minimize human intervention. • Isolate and contain failures to enable self-healing. • Master resilience and elasticity to achieve system responsiveness. 18
  • 19. Utilize a streaming architecture to achieve distribution, concurrency, supervision, and resilience 19 Kafka myTopic .subscribe() Akka Streams .map(kafkaMessage -> new WebSocketMessage( kafkaMessage.getPayload() ) ) WebSocket response .send(publisher) Reactive Streams Backpressure Reactive Streams Messages By modelling a system using streams, we embrace events, no longer need a single state, and can take eventual consistency for granted
  • 20. Distributed, Reactive Systems Unlock Higher Cloud ROI
  • 21. 21 “Akka has consistently allowed us to cut 80% of infrastructure, or increase overall application performance by 5x, when compared to the traditional systems we replaced.” - Akara Sucharitakul, Principal MTS at PayPal “
  • 22. We enable Product teams to: • Focus on the business logic, not low- level protocols. • Eliminate bottlenecks and single points of failure. • Realize true ROI from investing in cloud infrastructure. • Focus on what matters to your business. 22
  • 24. We enable Product teams to: • Enhancing customer engagement with data-driven insights • Unleashing innovation to protect or capture markets • Improving agility and time to value • Reducing compute costs while scaling elastically • Increasing developer happiness and productivity 24
  • 25. From Java EE To Cloud Native: The End Of The Heavyweight Era How to modernize traditional Java EE applications for cloud-native infrastructure WHITE PAPER | BY MARKUS EISELE AND JAMES ROPER, LIGHTBEND INC. 28 http://bit.ly/JavaEE2CloudNative
  • 26. Reactive Microservices Architecture 29 Written for architects and developers that must quickly gain a fundamental understanding of microservice-based architectures, this free O’Reilly report explores the journey from SOA to microservices, discusses approaches to dismantling your monolith, and reviews the key tenets of a Reactive microservice: • Isolate all the Things • Act Autonomously • Do One Thing, and Do It Well • Own Your State, Exclusively • Embrace Asynchronous Message-Passing • Stay Mobile, but Addressable • Collaborate as Systems to Solve Problems http://bit.ly/ReactiveMicroservice
  • 27. Developing Reactive Microservices 30 The detailed example in this report is based on Lagom, a new framework that helps you follow the requirements for building distributed, reactive systems. • Get an overview of the Reactive Programming model and basic requirements for developing reactive microservices • Learn how to create base services, expose endpoints, and then connect them with a simple, web-based user interface • Understand how to deal with persistence, state, and clients • Use integration technologies to start a successful migration away from legacy systems http://bit.ly/DevelopReactiveMicroservice
  • 28. Modern Java EE Design Patterns • Understand the challenges of starting a greenfield development vs tearing apart an existing brownfield application into services • Examine your business domain to see if microservices would be a good fit • Explore best practices for automation, high availability, data separation, and performance • Align your development teams around business capabilities and responsibilities • Inspect design patterns such as aggregator, proxy, pipeline, or shared resources to model service interactions 31 http://bit.ly/SustainableEnterprise
  • 29. Thank You Page Markus Eisele @myfear blog.eisele.net