SlideShare a Scribd company logo
1 of 29
Download to read offline
About me
1
Yıldız Teknik Üniversitesi
Bilgisayar Mühendisliği
2000 - 2006
Bahçeşehir Üniversitesi
Engineering Management
2006 - 2012
Softtech A.Ş.
Senior Developer, Architect, Solution Architect
2006 - ...
United Parcel Service
Developer
2002 - 2006
Solution Architect, Full Stack Developer
M.Sc Engineering Management
B.Sc Computer Engineering
Jonas Bonér
2
Founder and CTO of
http://www.jonasboner.com
Creator of project
https://www.slideshare.net/jboner
https://www.youtube.com/watch?v=DRK7WYNh6AA
What changed ?
3
Reactive Manifesto
4
The system responds in a timely manner if at all possible.
The system stays
responsive in the
face of failure.
Resilience is achieved by
replication, containment,
isolation and delegation.
The system stays
responsive under varying
workload.
Reactive Systems can react to
changes in the input rate by
increasing or decreasing the
resources allocated to service these
inputs.
Reactive Systems rely on asynchronous message-passing to
establish a boundary between components.
That ensures loose coupling, isolation, location transparency, and provides the means to
delegate errors as messages
Operating at the Edge of Failure
5
‘‘Going solid’’: a model of system dynamics and consequences for patient safety - R Cook, J Rasmussen
Resilience in complex adaptive systems: Operating at the Edge of Failure - Richard Cook - Talk at Velocity NY 2013
We have Complex Software Systems
Today 6
https://www.slideshare.net/jboner/without-resilience-nothing-else-matters-56053062 , December 11, 2015 – Jonas Bonér
Resiliency & Failure Management
7
Manage Failure, Not to Avoid It
Let It Crash
STOP = Crash Safely
START = Recover Fast
Bulkheading Error Kernel
Isolation, Containment, Delegation
https://www.slideshare.net/jboner/without-resilience-nothing-else-matters-56053062 , December 11, 2015 – Jonas Bonér
Rest over HTTP is good
for frontend 2 backend
communication,
Go asynchronous
messaging with TCP for
backend 2 backend
communication
Event Driven Architecture
8
‘’ Event-driven architecture (EDA) is a design paradigm in which
a software component executes in response to receiving one or
more event notifications.’’
- Gartner
Events;
 Drive autonomy
 Help reduce risk
 Help you move faster
 Increase Loose coupling
 Increase stability
 Increase scalability
 Increase resilience
 Increase traceability
 Allow for time-travel
https://www.slideshare.net/jboner/how-events-are-reshaping-modern-systems-81845642 , November 10, 2017 – Jonas Bonér
CQRS
9
https://www.slideshare.net/jboner/how-events-are-reshaping-modern-systems-81845642 , November 10, 2017 – Jonas Bonér
http://microservices.io/patterns/data/cqrs.html
Read & Write side concerns are different
 Scalable
 Reduced Complexity
 Flexibility
Event Sourcing
10
https://www.slideshare.net/jboner/how-events-are-reshaping-modern-systems-81845642 , November 10, 2017 – Jonas Bonér
employee_created
{
"id": 123,
"name": "john",
"salary": 3000,
"date": "2016-01-01"
}
salary_upgraded
{
"id": 123,
"ratio": 8.0,
"date": "2017-01-01"
}
bonus_gained
{
"id": 123,
"ratio": 1.5,
"date": "2017-06-01"
}
salary_upgraded
{
"id": 123,
"ratio": 8.0,
"date": "2018-01-01"
}
bonus_gained
{
"id": 123,
"ratio": 1.5,
"date": "2018-06-01"
}
STATE
Event Sourcing;
 Trace
 Audit Log
 Replay
 Audit Log
 Replay
time
t0 t1 t2 t4t3 t5
CRUD
Event Storming and DDD
11
https://blog.redelastic.com/corporate-arts-crafts-modelling-reactive-systems-with-event-storming-73c6236f5dd7
What about Transactions?
12
http://www.enterpriseintegrationpatterns.com/ramblings/18_starbucks.html, November 19, 2004 – Gregor HOHPE
Customer Line
Guess, Apologize, Compensate
Correlation Id Payment Prepare Coffee
Consistency Boundary
Asynchronous
Boundaries
Isolated
What about Transactions?
13
http://www.enterpriseintegrationpatterns.com/ramblings/18_starbucks.html, November 19, 2004 – Gregor HOHPE
Guess, Apologize, Compensate
Coffee Break
14
15 Minutes
15
Lightbend Reactive Platform
16
The Stack View
http://www.enterpriseintegrationpatterns.com/ramblings/18_starbucks.html, November 19, 2004 – Gregor HOHPE
What is Akka
17
?
Akka is a toolkit for building highly concurrent,
distributed, and resilient message-driven
applications for Java and Scala
Akka is the implementation of the Actor Model
on the JVM.
Simpler Concurrent & Distributed Systems
Actors and Streams let you build systems that scale up,
using the resources of a server more efficiently, and out,
using multiple servers.
Resilient by Design
Building on the principles of The Reactive Manifesto Akka
allows you to write systems that self-heal and stay
responsive in the face of failures.
High Performance
Up to 50 million msg/sec on a single machine. Small
memory footprint; ~2.5 million actors per GB of heap.
Elastic & Decentralized
Distributed systems without single points of failure. Load
balancing and adaptive routing across nodes. Event
Sourcing and CQRS with Cluster Sharding. Distributed Data
for eventual consistency using CRDTs.
Reactive Streaming Data
Asynchronous non-blocking stream processing with
backpressure. Fully async and streaming HTTP server and
client provides a great platform for building microservices.
Streaming integrations with Alpakka.
What Actors are not ?
18
What is Actor Model ?
Created by Carl Hewitt (1973)
 Actor : The fundemantal unit of computation, a computation model.
Actor has 3 elements;
 Process
 Storage
 Communication
When an actor receives a message;
 Create more actors
 Send messages to other Actors that it has addresses for
 Designate how the Actor is going to handle the next message it receives
Ericsson has succeed 9 uptime with Erlang Actor Model & Concurrency in telecom systems for many years
19
https://channel9.msdn.com/Shows/Going+Deep/Hewitt-Meijer-and-Szyperski-The-Actor-Model-everything-you-wanted-to-know-but-were-afraid-to-ask
Akka Actor Model
20
Sender ActorRef
Mailbox
Actor
Dispatcher
send
enqueue dequeue
schedule
Design principles behind;
 Share Nothing
 Let It Crash
 Immutable Messages
Encapsulates
 State
 Behavior
 Message Queue
https://blog.codecentric.de/en/2015/08/introduction-to-akka-actors/
Akka Actor Hierarchy
21
https://doc.akka.io/docs/akka/current/general/addressing.html
Akka Actor Hierarchy
22
https://doc.akka.io/docs/akka/current/general/addressing.html
Error Kernel Pattern
 Isolated
 Avoid catastrophic failures
 Seperate Business Logic & Error
handling
Location Transparency
23
Demo
24
Cloud Design Patterns
25
Command Query Responsiblity Segregation (CQRS)
Circuit Breaker
Event Sourcing
External Configuration Store
Health Endpoint Monitoring
Retry
Sharding
Throttling
Resilience
Fault Tolerant
Session Grid
Containerization
Architecture Design 26
The Nottify Stack coming
soon...
 Reactive
• Responsive
• Elastic
• Resilient
• Message-driven
 Always On
• Active-Active
• Multi Data Center
 DevOps
• Containerized
• Infrastructure as Code
• Externalized Configuration
 Cloud Design Patterns
• CQRS + Event Sourcing
• Circuit Breaker
• Leader Election
• Health Monitoring
• Highly Scalable
Questions & Answers
28
References
 https://akka.io/docs/
 http://www.lightbend.com
 https://www.slideshare.net/jboner
 https://www.youtube.com/watch?v=DRK7WYNh6AA
 http://www.enterpriseintegrationpatterns.com/ramblings/18_starbucks.html
 https://gist.github.com/rbishop/9082539
 https://blog.codecentric.de/en/2015/08/introduction-to-akka-actors/
 https://www.slideshare.net/jboner/without-resilience-nothing-else-matters-
56053062?qid=bd262b90-241b-486a-9908-f06600f5568a&v=&b=&from_search=13
 https://www.youtube.com/watch?v=iYTEZ0fm4Pw#action=share
29

More Related Content

Similar to Road to Reactive Micorservices With Akka

Battery Ventures: Simulating and Visualizing Large Scale Cassandra Deployments
Battery Ventures: Simulating and Visualizing Large Scale Cassandra DeploymentsBattery Ventures: Simulating and Visualizing Large Scale Cassandra Deployments
Battery Ventures: Simulating and Visualizing Large Scale Cassandra DeploymentsDataStax Academy
 
XebiCon'17 : AxonFramework @ SGCIB (our experience) : (CQRS, Eventsourcing, A...
XebiCon'17 : AxonFramework @ SGCIB (our experience) : (CQRS, Eventsourcing, A...XebiCon'17 : AxonFramework @ SGCIB (our experience) : (CQRS, Eventsourcing, A...
XebiCon'17 : AxonFramework @ SGCIB (our experience) : (CQRS, Eventsourcing, A...Publicis Sapient Engineering
 
Streaming Cyber Security into Graph: Accelerating Data into DataStax Graph an...
Streaming Cyber Security into Graph: Accelerating Data into DataStax Graph an...Streaming Cyber Security into Graph: Accelerating Data into DataStax Graph an...
Streaming Cyber Security into Graph: Accelerating Data into DataStax Graph an...Keith Kraus
 
Microservices Architecture - Bangkok 2018
Microservices Architecture - Bangkok 2018Microservices Architecture - Bangkok 2018
Microservices Architecture - Bangkok 2018Araf Karsh Hamid
 
Mobile IoT Middleware Interoperability & QoS Analysis - Eclipse IoT Day Paris...
Mobile IoT Middleware Interoperability & QoS Analysis - Eclipse IoT Day Paris...Mobile IoT Middleware Interoperability & QoS Analysis - Eclipse IoT Day Paris...
Mobile IoT Middleware Interoperability & QoS Analysis - Eclipse IoT Day Paris...Nikolaos Georgantas
 
GOTO Amsterdam 2017 - Enterprise Fast Lane
GOTO Amsterdam 2017 - Enterprise Fast LaneGOTO Amsterdam 2017 - Enterprise Fast Lane
GOTO Amsterdam 2017 - Enterprise Fast LaneChristian Deger
 
Planning for a Digital Future
Planning for a Digital FuturePlanning for a Digital Future
Planning for a Digital FutureNETSCOUT
 
Excellent slides on the new z13s announced on 16th Feb 2016
Excellent slides on the new z13s announced on 16th Feb 2016Excellent slides on the new z13s announced on 16th Feb 2016
Excellent slides on the new z13s announced on 16th Feb 2016Luigi Tommaseo
 
USENIX NSDI 2016 (Session: Resource Sharing)
USENIX NSDI 2016 (Session: Resource Sharing)USENIX NSDI 2016 (Session: Resource Sharing)
USENIX NSDI 2016 (Session: Resource Sharing)Ryousei Takano
 
How Cloud Changes Business Expectations
How Cloud Changes Business ExpectationsHow Cloud Changes Business Expectations
How Cloud Changes Business Expectationstimhill2000
 
Microservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsMicroservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsAraf Karsh Hamid
 
Develop & Deploy cloud-native apps as resilient Microservices Architectures
Develop & Deploy cloud-native apps as resilient Microservices ArchitecturesDevelop & Deploy cloud-native apps as resilient Microservices Architectures
Develop & Deploy cloud-native apps as resilient Microservices ArchitecturesRed Hat Developers
 
The Why and How of Applications with APIs and microservices
The Why and How of Applications with APIs and microservicesThe Why and How of Applications with APIs and microservices
The Why and How of Applications with APIs and microservicesRonald Ashri
 
Actor model in F# and Akka.NET
Actor model in F# and Akka.NETActor model in F# and Akka.NET
Actor model in F# and Akka.NETRiccardo Terrell
 
Microservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and KafkaMicroservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and KafkaAraf Karsh Hamid
 
Internet of Things (IoT) - in the cloud or rather on-premises?
Internet of Things (IoT) - in the cloud or rather on-premises?Internet of Things (IoT) - in the cloud or rather on-premises?
Internet of Things (IoT) - in the cloud or rather on-premises?Guido Schmutz
 
Implementing Saas as Cloud controllers using Mobile Agent based technology wi...
Implementing Saas as Cloud controllers using Mobile Agent based technology wi...Implementing Saas as Cloud controllers using Mobile Agent based technology wi...
Implementing Saas as Cloud controllers using Mobile Agent based technology wi...Sunil Rajput
 
apidays LIVE Hong Kong 2021 - Rethinking Financial Services with Data in Moti...
apidays LIVE Hong Kong 2021 - Rethinking Financial Services with Data in Moti...apidays LIVE Hong Kong 2021 - Rethinking Financial Services with Data in Moti...
apidays LIVE Hong Kong 2021 - Rethinking Financial Services with Data in Moti...apidays
 
Microservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsMicroservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsAraf Karsh Hamid
 
From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...
From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...
From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...HostedbyConfluent
 

Similar to Road to Reactive Micorservices With Akka (20)

Battery Ventures: Simulating and Visualizing Large Scale Cassandra Deployments
Battery Ventures: Simulating and Visualizing Large Scale Cassandra DeploymentsBattery Ventures: Simulating and Visualizing Large Scale Cassandra Deployments
Battery Ventures: Simulating and Visualizing Large Scale Cassandra Deployments
 
XebiCon'17 : AxonFramework @ SGCIB (our experience) : (CQRS, Eventsourcing, A...
XebiCon'17 : AxonFramework @ SGCIB (our experience) : (CQRS, Eventsourcing, A...XebiCon'17 : AxonFramework @ SGCIB (our experience) : (CQRS, Eventsourcing, A...
XebiCon'17 : AxonFramework @ SGCIB (our experience) : (CQRS, Eventsourcing, A...
 
Streaming Cyber Security into Graph: Accelerating Data into DataStax Graph an...
Streaming Cyber Security into Graph: Accelerating Data into DataStax Graph an...Streaming Cyber Security into Graph: Accelerating Data into DataStax Graph an...
Streaming Cyber Security into Graph: Accelerating Data into DataStax Graph an...
 
Microservices Architecture - Bangkok 2018
Microservices Architecture - Bangkok 2018Microservices Architecture - Bangkok 2018
Microservices Architecture - Bangkok 2018
 
Mobile IoT Middleware Interoperability & QoS Analysis - Eclipse IoT Day Paris...
Mobile IoT Middleware Interoperability & QoS Analysis - Eclipse IoT Day Paris...Mobile IoT Middleware Interoperability & QoS Analysis - Eclipse IoT Day Paris...
Mobile IoT Middleware Interoperability & QoS Analysis - Eclipse IoT Day Paris...
 
GOTO Amsterdam 2017 - Enterprise Fast Lane
GOTO Amsterdam 2017 - Enterprise Fast LaneGOTO Amsterdam 2017 - Enterprise Fast Lane
GOTO Amsterdam 2017 - Enterprise Fast Lane
 
Planning for a Digital Future
Planning for a Digital FuturePlanning for a Digital Future
Planning for a Digital Future
 
Excellent slides on the new z13s announced on 16th Feb 2016
Excellent slides on the new z13s announced on 16th Feb 2016Excellent slides on the new z13s announced on 16th Feb 2016
Excellent slides on the new z13s announced on 16th Feb 2016
 
USENIX NSDI 2016 (Session: Resource Sharing)
USENIX NSDI 2016 (Session: Resource Sharing)USENIX NSDI 2016 (Session: Resource Sharing)
USENIX NSDI 2016 (Session: Resource Sharing)
 
How Cloud Changes Business Expectations
How Cloud Changes Business ExpectationsHow Cloud Changes Business Expectations
How Cloud Changes Business Expectations
 
Microservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsMicroservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native Apps
 
Develop & Deploy cloud-native apps as resilient Microservices Architectures
Develop & Deploy cloud-native apps as resilient Microservices ArchitecturesDevelop & Deploy cloud-native apps as resilient Microservices Architectures
Develop & Deploy cloud-native apps as resilient Microservices Architectures
 
The Why and How of Applications with APIs and microservices
The Why and How of Applications with APIs and microservicesThe Why and How of Applications with APIs and microservices
The Why and How of Applications with APIs and microservices
 
Actor model in F# and Akka.NET
Actor model in F# and Akka.NETActor model in F# and Akka.NET
Actor model in F# and Akka.NET
 
Microservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and KafkaMicroservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and Kafka
 
Internet of Things (IoT) - in the cloud or rather on-premises?
Internet of Things (IoT) - in the cloud or rather on-premises?Internet of Things (IoT) - in the cloud or rather on-premises?
Internet of Things (IoT) - in the cloud or rather on-premises?
 
Implementing Saas as Cloud controllers using Mobile Agent based technology wi...
Implementing Saas as Cloud controllers using Mobile Agent based technology wi...Implementing Saas as Cloud controllers using Mobile Agent based technology wi...
Implementing Saas as Cloud controllers using Mobile Agent based technology wi...
 
apidays LIVE Hong Kong 2021 - Rethinking Financial Services with Data in Moti...
apidays LIVE Hong Kong 2021 - Rethinking Financial Services with Data in Moti...apidays LIVE Hong Kong 2021 - Rethinking Financial Services with Data in Moti...
apidays LIVE Hong Kong 2021 - Rethinking Financial Services with Data in Moti...
 
Microservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsMicroservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration Patterns
 
From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...
From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...
From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...
 

Recently uploaded

Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 

Recently uploaded (20)

Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 

Road to Reactive Micorservices With Akka

  • 1. About me 1 Yıldız Teknik Üniversitesi Bilgisayar Mühendisliği 2000 - 2006 Bahçeşehir Üniversitesi Engineering Management 2006 - 2012 Softtech A.Ş. Senior Developer, Architect, Solution Architect 2006 - ... United Parcel Service Developer 2002 - 2006 Solution Architect, Full Stack Developer M.Sc Engineering Management B.Sc Computer Engineering
  • 2. Jonas Bonér 2 Founder and CTO of http://www.jonasboner.com Creator of project https://www.slideshare.net/jboner https://www.youtube.com/watch?v=DRK7WYNh6AA
  • 4. Reactive Manifesto 4 The system responds in a timely manner if at all possible. The system stays responsive in the face of failure. Resilience is achieved by replication, containment, isolation and delegation. The system stays responsive under varying workload. Reactive Systems can react to changes in the input rate by increasing or decreasing the resources allocated to service these inputs. Reactive Systems rely on asynchronous message-passing to establish a boundary between components. That ensures loose coupling, isolation, location transparency, and provides the means to delegate errors as messages
  • 5. Operating at the Edge of Failure 5 ‘‘Going solid’’: a model of system dynamics and consequences for patient safety - R Cook, J Rasmussen Resilience in complex adaptive systems: Operating at the Edge of Failure - Richard Cook - Talk at Velocity NY 2013
  • 6. We have Complex Software Systems Today 6 https://www.slideshare.net/jboner/without-resilience-nothing-else-matters-56053062 , December 11, 2015 – Jonas Bonér
  • 7. Resiliency & Failure Management 7 Manage Failure, Not to Avoid It Let It Crash STOP = Crash Safely START = Recover Fast Bulkheading Error Kernel Isolation, Containment, Delegation https://www.slideshare.net/jboner/without-resilience-nothing-else-matters-56053062 , December 11, 2015 – Jonas Bonér Rest over HTTP is good for frontend 2 backend communication, Go asynchronous messaging with TCP for backend 2 backend communication
  • 8. Event Driven Architecture 8 ‘’ Event-driven architecture (EDA) is a design paradigm in which a software component executes in response to receiving one or more event notifications.’’ - Gartner Events;  Drive autonomy  Help reduce risk  Help you move faster  Increase Loose coupling  Increase stability  Increase scalability  Increase resilience  Increase traceability  Allow for time-travel https://www.slideshare.net/jboner/how-events-are-reshaping-modern-systems-81845642 , November 10, 2017 – Jonas Bonér
  • 9. CQRS 9 https://www.slideshare.net/jboner/how-events-are-reshaping-modern-systems-81845642 , November 10, 2017 – Jonas Bonér http://microservices.io/patterns/data/cqrs.html Read & Write side concerns are different  Scalable  Reduced Complexity  Flexibility
  • 10. Event Sourcing 10 https://www.slideshare.net/jboner/how-events-are-reshaping-modern-systems-81845642 , November 10, 2017 – Jonas Bonér employee_created { "id": 123, "name": "john", "salary": 3000, "date": "2016-01-01" } salary_upgraded { "id": 123, "ratio": 8.0, "date": "2017-01-01" } bonus_gained { "id": 123, "ratio": 1.5, "date": "2017-06-01" } salary_upgraded { "id": 123, "ratio": 8.0, "date": "2018-01-01" } bonus_gained { "id": 123, "ratio": 1.5, "date": "2018-06-01" } STATE Event Sourcing;  Trace  Audit Log  Replay  Audit Log  Replay time t0 t1 t2 t4t3 t5 CRUD
  • 11. Event Storming and DDD 11 https://blog.redelastic.com/corporate-arts-crafts-modelling-reactive-systems-with-event-storming-73c6236f5dd7
  • 12. What about Transactions? 12 http://www.enterpriseintegrationpatterns.com/ramblings/18_starbucks.html, November 19, 2004 – Gregor HOHPE Customer Line Guess, Apologize, Compensate Correlation Id Payment Prepare Coffee Consistency Boundary Asynchronous Boundaries Isolated
  • 13. What about Transactions? 13 http://www.enterpriseintegrationpatterns.com/ramblings/18_starbucks.html, November 19, 2004 – Gregor HOHPE Guess, Apologize, Compensate
  • 17. What is Akka 17 ? Akka is a toolkit for building highly concurrent, distributed, and resilient message-driven applications for Java and Scala Akka is the implementation of the Actor Model on the JVM. Simpler Concurrent & Distributed Systems Actors and Streams let you build systems that scale up, using the resources of a server more efficiently, and out, using multiple servers. Resilient by Design Building on the principles of The Reactive Manifesto Akka allows you to write systems that self-heal and stay responsive in the face of failures. High Performance Up to 50 million msg/sec on a single machine. Small memory footprint; ~2.5 million actors per GB of heap. Elastic & Decentralized Distributed systems without single points of failure. Load balancing and adaptive routing across nodes. Event Sourcing and CQRS with Cluster Sharding. Distributed Data for eventual consistency using CRDTs. Reactive Streaming Data Asynchronous non-blocking stream processing with backpressure. Fully async and streaming HTTP server and client provides a great platform for building microservices. Streaming integrations with Alpakka.
  • 18. What Actors are not ? 18
  • 19. What is Actor Model ? Created by Carl Hewitt (1973)  Actor : The fundemantal unit of computation, a computation model. Actor has 3 elements;  Process  Storage  Communication When an actor receives a message;  Create more actors  Send messages to other Actors that it has addresses for  Designate how the Actor is going to handle the next message it receives Ericsson has succeed 9 uptime with Erlang Actor Model & Concurrency in telecom systems for many years 19 https://channel9.msdn.com/Shows/Going+Deep/Hewitt-Meijer-and-Szyperski-The-Actor-Model-everything-you-wanted-to-know-but-were-afraid-to-ask
  • 20. Akka Actor Model 20 Sender ActorRef Mailbox Actor Dispatcher send enqueue dequeue schedule Design principles behind;  Share Nothing  Let It Crash  Immutable Messages Encapsulates  State  Behavior  Message Queue https://blog.codecentric.de/en/2015/08/introduction-to-akka-actors/
  • 22. Akka Actor Hierarchy 22 https://doc.akka.io/docs/akka/current/general/addressing.html Error Kernel Pattern  Isolated  Avoid catastrophic failures  Seperate Business Logic & Error handling
  • 25. Cloud Design Patterns 25 Command Query Responsiblity Segregation (CQRS) Circuit Breaker Event Sourcing External Configuration Store Health Endpoint Monitoring Retry Sharding Throttling Resilience Fault Tolerant Session Grid Containerization
  • 27. The Nottify Stack coming soon...  Reactive • Responsive • Elastic • Resilient • Message-driven  Always On • Active-Active • Multi Data Center  DevOps • Containerized • Infrastructure as Code • Externalized Configuration  Cloud Design Patterns • CQRS + Event Sourcing • Circuit Breaker • Leader Election • Health Monitoring • Highly Scalable
  • 29. References  https://akka.io/docs/  http://www.lightbend.com  https://www.slideshare.net/jboner  https://www.youtube.com/watch?v=DRK7WYNh6AA  http://www.enterpriseintegrationpatterns.com/ramblings/18_starbucks.html  https://gist.github.com/rbishop/9082539  https://blog.codecentric.de/en/2015/08/introduction-to-akka-actors/  https://www.slideshare.net/jboner/without-resilience-nothing-else-matters- 56053062?qid=bd262b90-241b-486a-9908-f06600f5568a&v=&b=&from_search=13  https://www.youtube.com/watch?v=iYTEZ0fm4Pw#action=share 29