SlideShare a Scribd company logo
1 of 46
Micro-Services, the
Reactive Manifesto, and
12-Factors
Dejan Glozic, IBM Canada
ReactiveTO, July 2014
About me
Dejan Glozic, Full-Stack Architect
IBM Canada Toronto Laboratory
@dglozic
http://dejanglozic.com
Meetup reaction
Disambiguation:
• Reactionary
• Reactive pattern
• Reactive.js
We are not exactly
short on manifestos
Can you name a few?
Still, why worry?
Manifesto trends
0
15
30
45
60
XVI XVII XVIII XIX XX XXI
NotableManifestos
Centuries
Artistic Technical Technical (projected) Political
Adding more causes
inflation
We are reducing the value and impact of manifestos
Or even hyper-inflation
How bad can it be?
This bad
Inflation is bad, don’t do inflation… mmm kay?
Another thing to avoid
Founders giving up on their own manifestos
Resulting in…
Russ Miles blog-blocking the creation of a Micro-service
Manifesto
Microbe-service
Chlamydia is a nasty STD, don’t do Chlamydia…
mmmkay?
Don’t:
• Create too many new manifestos
• Go through them like dirty socks
• Make them compete with each other
Do
• Use manifestos as building blocks
• Make new manifestos add to the growing
understanding
–A Thespian from Utah
“We can have our Kate and Edith too.”
Mental exercise
Merge 12-factors, reactive manifesto and micro-services
The Twelve-Factor
App
Adam Wiggins, Heroku co-founder
12-Factors use Roman
numerals
Because they make the manifestos sound L% more
effective.
Factors I-IV
I. One codebase, many deploys
II. Declare and isolate dependencies
III. Separate config from code
IV. Treat backing services as attached resources
Factors V-VIII
V. Strictly separate build, release and run stages
VI. Execute apps as share-nothing processes
VII.Export services via port binding
VIII.Scale out via the process model
Factors IX-XII
IX. Fast startup, graceful shutdown
X. Dev/Prod parity
XI. Treat logs as event streams
XII.Run admin/mgmt tasks as one-off processes
12-factors are great…
…but they only answer ‘How’, not ‘Why’ and ‘What’
Then came Reactive
Manifesto
…but Kevin already told you what it is about
Why Reactive?
So that our system can be reactive to:
• Events
• Load
• Failure
• Users
Micro-services
The third ingredient
Micro-service frenzy
They even cause Twitter food fights
Sigh…
We cannot even agree what it is
Micro-service system
• Many micro-services instead of a monolith
• Do one thing and do it right
• Deploy micro-services independently
• Communicate using message queues
• Cluster locally
Example - feature grid
Horizontal - tiers, vertical - features.
Example - events
RabbitMQ between micro-services, WebSockets for
server push
Example - clustering
RabbitMQ worker queue, round-robin to micro-service
workers
Everything snaps into
focus
We now have our What, Why and How
What?
A distributed system based on micro-services that
communicate via message queues
Why?
Because we want our system to be reactive to events,
load, failure and users.
How?
By implementing micro-services as well-behaved 12-
factor apps
1 4 12
CONCEPT TENETS FACTORS
This was fun
Let’s hope consultants don’t ruin Reactive the way they
did Agile
#!$@*!!
Questions?
Thank you!
@dglozic
http://dejanglozic.com

More Related Content

What's hot

Achieving Developer Nirvana With Codename: BlueMix
Achieving Developer Nirvana With Codename: BlueMixAchieving Developer Nirvana With Codename: BlueMix
Achieving Developer Nirvana With Codename: BlueMix
Ryan Baxter
 

What's hot (20)

12 FACTOR APP WITH DOCKER
12 FACTOR APP WITH DOCKER12 FACTOR APP WITH DOCKER
12 FACTOR APP WITH DOCKER
 
12 factor apps
12 factor apps12 factor apps
12 factor apps
 
ThatConference 2016 - Highly Available Node.js
ThatConference 2016 - Highly Available Node.jsThatConference 2016 - Highly Available Node.js
ThatConference 2016 - Highly Available Node.js
 
Building Cloud-Native Applications with OpenStack
Building Cloud-Native Applications with OpenStack Building Cloud-Native Applications with OpenStack
Building Cloud-Native Applications with OpenStack
 
Cloud Native Application Framework
Cloud Native Application FrameworkCloud Native Application Framework
Cloud Native Application Framework
 
Achieving Developer Nirvana With Codename: BlueMix
Achieving Developer Nirvana With Codename: BlueMixAchieving Developer Nirvana With Codename: BlueMix
Achieving Developer Nirvana With Codename: BlueMix
 
Managing OpenShift at Scale Across the Open Hybrid Cloud
Managing OpenShift at Scale Across the Open Hybrid CloudManaging OpenShift at Scale Across the Open Hybrid Cloud
Managing OpenShift at Scale Across the Open Hybrid Cloud
 
12 factor app - Core Guidelines To Cloud Ready Solutions
12 factor app - Core Guidelines To Cloud Ready Solutions12 factor app - Core Guidelines To Cloud Ready Solutions
12 factor app - Core Guidelines To Cloud Ready Solutions
 
7-Step Recipe For Continuous Integration Using OpenStack - Part 1
7-Step Recipe For Continuous Integration Using OpenStack - Part 17-Step Recipe For Continuous Integration Using OpenStack - Part 1
7-Step Recipe For Continuous Integration Using OpenStack - Part 1
 
PaaS Ecosystem Overview
PaaS Ecosystem OverviewPaaS Ecosystem Overview
PaaS Ecosystem Overview
 
Modernizing Your Enterprise Application Architecture with Microservices and A...
Modernizing Your Enterprise Application Architecture with Microservices and A...Modernizing Your Enterprise Application Architecture with Microservices and A...
Modernizing Your Enterprise Application Architecture with Microservices and A...
 
IBM Bluemix Tech Meetup 18-02-2015
IBM Bluemix Tech Meetup 18-02-2015IBM Bluemix Tech Meetup 18-02-2015
IBM Bluemix Tech Meetup 18-02-2015
 
Software Architecture: A Story About Business Value and Tradeoffs
Software Architecture: A Story About Business Value and TradeoffsSoftware Architecture: A Story About Business Value and Tradeoffs
Software Architecture: A Story About Business Value and Tradeoffs
 
Multi-cloud Container Management for vRealize Automation
Multi-cloud Container Management for vRealize AutomationMulti-cloud Container Management for vRealize Automation
Multi-cloud Container Management for vRealize Automation
 
DevOps and its impact
DevOps and its impactDevOps and its impact
DevOps and its impact
 
Cloud Native Runtime Platform
Cloud Native Runtime Platform Cloud Native Runtime Platform
Cloud Native Runtime Platform
 
IBM Bluemix Overview
IBM Bluemix OverviewIBM Bluemix Overview
IBM Bluemix Overview
 
An Integrated Pipeline for Private and Public Clouds with Jenkins, Artifactor...
An Integrated Pipeline for Private and Public Clouds with Jenkins, Artifactor...An Integrated Pipeline for Private and Public Clouds with Jenkins, Artifactor...
An Integrated Pipeline for Private and Public Clouds with Jenkins, Artifactor...
 
Boston Cloud Meetup - IBM Containers
Boston Cloud Meetup - IBM ContainersBoston Cloud Meetup - IBM Containers
Boston Cloud Meetup - IBM Containers
 
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the CloudMongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
 

Viewers also liked

Akka in Practice: Designing Actor-based Applications
Akka in Practice: Designing Actor-based ApplicationsAkka in Practice: Designing Actor-based Applications
Akka in Practice: Designing Actor-based Applications
NLJUG
 
Reactive Streams and RabbitMQ
Reactive Streams and RabbitMQReactive Streams and RabbitMQ
Reactive Streams and RabbitMQ
mkiedys
 

Viewers also liked (15)

12 Factor App: Best Practices for JVM Deployment
12 Factor App: Best Practices for JVM Deployment12 Factor App: Best Practices for JVM Deployment
12 Factor App: Best Practices for JVM Deployment
 
The 12 Factor App
The 12 Factor AppThe 12 Factor App
The 12 Factor App
 
Reactive Jersey Client
Reactive Jersey ClientReactive Jersey Client
Reactive Jersey Client
 
Akka in Practice: Designing Actor-based Applications
Akka in Practice: Designing Actor-based ApplicationsAkka in Practice: Designing Actor-based Applications
Akka in Practice: Designing Actor-based Applications
 
A Journey to Reactive Function Programming
A Journey to Reactive Function ProgrammingA Journey to Reactive Function Programming
A Journey to Reactive Function Programming
 
Reactive programming on Android
Reactive programming on AndroidReactive programming on Android
Reactive programming on Android
 
xPatterns on Spark, Shark, Mesos, Tachyon
xPatterns on Spark, Shark, Mesos, TachyonxPatterns on Spark, Shark, Mesos, Tachyon
xPatterns on Spark, Shark, Mesos, Tachyon
 
PSUG #52 Dataflow and simplified reactive programming with Akka-streams
PSUG #52 Dataflow and simplified reactive programming with Akka-streamsPSUG #52 Dataflow and simplified reactive programming with Akka-streams
PSUG #52 Dataflow and simplified reactive programming with Akka-streams
 
Reactive streams
Reactive streamsReactive streams
Reactive streams
 
Akka and AngularJS – Reactive Applications in Practice
Akka and AngularJS – Reactive Applications in PracticeAkka and AngularJS – Reactive Applications in Practice
Akka and AngularJS – Reactive Applications in Practice
 
Docker. Does it matter for Java developer ?
Docker. Does it matter for Java developer ?Docker. Does it matter for Java developer ?
Docker. Does it matter for Java developer ?
 
Tachyon and Apache Spark
Tachyon and Apache SparkTachyon and Apache Spark
Tachyon and Apache Spark
 
Reactive Streams and RabbitMQ
Reactive Streams and RabbitMQReactive Streams and RabbitMQ
Reactive Streams and RabbitMQ
 
xPatterns ... beyond Hadoop (Spark, Shark, Mesos, Tachyon)
xPatterns ... beyond Hadoop (Spark, Shark, Mesos, Tachyon)xPatterns ... beyond Hadoop (Spark, Shark, Mesos, Tachyon)
xPatterns ... beyond Hadoop (Spark, Shark, Mesos, Tachyon)
 
Resilient Applications with Akka Persistence - Scaladays 2014
Resilient Applications with Akka Persistence - Scaladays 2014Resilient Applications with Akka Persistence - Scaladays 2014
Resilient Applications with Akka Persistence - Scaladays 2014
 

Similar to Micro services, reactive manifesto and 12-factors

The Not-So-Straightforward Road From Microservices to Serverless
The Not-So-Straightforward Road From Microservices to ServerlessThe Not-So-Straightforward Road From Microservices to Serverless
The Not-So-Straightforward Road From Microservices to Serverless
Phil Calçado
 
Getting through the Economic Crisis as a Tech Startup
Getting through the Economic Crisis as a Tech StartupGetting through the Economic Crisis as a Tech Startup
Getting through the Economic Crisis as a Tech Startup
scoobeesnac
 
Innovation Enablers: Culture, Community & Code
Innovation Enablers: Culture, Community & Code Innovation Enablers: Culture, Community & Code
Innovation Enablers: Culture, Community & Code
Angel Diaz
 
Started in-tech-la-nov-21
Started in-tech-la-nov-21Started in-tech-la-nov-21
Started in-tech-la-nov-21
Thinkful
 

Similar to Micro services, reactive manifesto and 12-factors (20)

DevOps – Don’t Be Left Behind
DevOps – Don’t Be Left BehindDevOps – Don’t Be Left Behind
DevOps – Don’t Be Left Behind
 
The Not-So-Straightforward Road From Microservices to Serverless
The Not-So-Straightforward Road From Microservices to ServerlessThe Not-So-Straightforward Road From Microservices to Serverless
The Not-So-Straightforward Road From Microservices to Serverless
 
Ibm innovation space launch bluemix introduction
Ibm innovation space launch bluemix introductionIbm innovation space launch bluemix introduction
Ibm innovation space launch bluemix introduction
 
Dev ops and paas at hp discover 2015
Dev ops and paas at hp discover 2015Dev ops and paas at hp discover 2015
Dev ops and paas at hp discover 2015
 
Minimalism Revisited — Let’s Stop Developing Content that No One Wants
Minimalism Revisited — Let’s Stop Developing Content that No One WantsMinimalism Revisited — Let’s Stop Developing Content that No One Wants
Minimalism Revisited — Let’s Stop Developing Content that No One Wants
 
Responsible Microservices
Responsible MicroservicesResponsible Microservices
Responsible Microservices
 
Keynote, Intergen Dynamics Day '10
Keynote, Intergen Dynamics Day '10Keynote, Intergen Dynamics Day '10
Keynote, Intergen Dynamics Day '10
 
Getting through the Economic Crisis as a Tech Startup
Getting through the Economic Crisis as a Tech StartupGetting through the Economic Crisis as a Tech Startup
Getting through the Economic Crisis as a Tech Startup
 
Evolving to Cloud-Native - Nate Schutta 2/2
Evolving to Cloud-Native - Nate Schutta 2/2Evolving to Cloud-Native - Nate Schutta 2/2
Evolving to Cloud-Native - Nate Schutta 2/2
 
Dev ops don't be left behind
Dev ops   don't be left behindDev ops   don't be left behind
Dev ops don't be left behind
 
Microservices - Scaling Development and Service
Microservices - Scaling Development and ServiceMicroservices - Scaling Development and Service
Microservices - Scaling Development and Service
 
Elastically scalable architectures with microservices. The end of the monolith?
Elastically scalable architectures with microservices. The end of the monolith?Elastically scalable architectures with microservices. The end of the monolith?
Elastically scalable architectures with microservices. The end of the monolith?
 
5 Practices for Better, Cheaper, Faster Service Delivery
5 Practices for Better, Cheaper, Faster Service Delivery5 Practices for Better, Cheaper, Faster Service Delivery
5 Practices for Better, Cheaper, Faster Service Delivery
 
Evolving to Cloud-Native - Nate Schutta (2/2)
Evolving to Cloud-Native - Nate Schutta (2/2)Evolving to Cloud-Native - Nate Schutta (2/2)
Evolving to Cloud-Native - Nate Schutta (2/2)
 
Innovation Enablers: Culture, Community & Code
Innovation Enablers: Culture, Community & Code Innovation Enablers: Culture, Community & Code
Innovation Enablers: Culture, Community & Code
 
Why a DevOps approach is critical to achieve digital transformation
Why a DevOps approach is critical to achieve digital transformationWhy a DevOps approach is critical to achieve digital transformation
Why a DevOps approach is critical to achieve digital transformation
 
Evolving to Cloud-Native - Nate Schutta 1/2
Evolving to Cloud-Native - Nate Schutta 1/2Evolving to Cloud-Native - Nate Schutta 1/2
Evolving to Cloud-Native - Nate Schutta 1/2
 
IBM and Node.js - Old Doge, New Tricks
IBM and Node.js - Old Doge, New TricksIBM and Node.js - Old Doge, New Tricks
IBM and Node.js - Old Doge, New Tricks
 
Started in-tech-la-nov-21
Started in-tech-la-nov-21Started in-tech-la-nov-21
Started in-tech-la-nov-21
 
Navigating the New Industrial Revolution - Exploring New Forms of Value Creation
Navigating the New Industrial Revolution - Exploring New Forms of Value CreationNavigating the New Industrial Revolution - Exploring New Forms of Value Creation
Navigating the New Industrial Revolution - Exploring New Forms of Value Creation
 

Recently uploaded

%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
masabamasaba
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
chiefasafspells
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 
Abortion Pill Prices Boksburg [(+27832195400*)] 🏥 Women's Abortion Clinic in ...
Abortion Pill Prices Boksburg [(+27832195400*)] 🏥 Women's Abortion Clinic in ...Abortion Pill Prices Boksburg [(+27832195400*)] 🏥 Women's Abortion Clinic in ...
Abortion Pill Prices Boksburg [(+27832195400*)] 🏥 Women's Abortion Clinic in ...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 

Recently uploaded (20)

Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
Abortion Pill Prices Boksburg [(+27832195400*)] 🏥 Women's Abortion Clinic in ...
Abortion Pill Prices Boksburg [(+27832195400*)] 🏥 Women's Abortion Clinic in ...Abortion Pill Prices Boksburg [(+27832195400*)] 🏥 Women's Abortion Clinic in ...
Abortion Pill Prices Boksburg [(+27832195400*)] 🏥 Women's Abortion Clinic in ...
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
WSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - KanchanaWSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - Kanchana
 

Micro services, reactive manifesto and 12-factors

Editor's Notes

  1. Second presentation of the evening. Intriguing title, talk should match. Grand unifying theory of distributed system manifestos.
  2. My name is Dejan Glozic. Full-stack architect at IBM Canada, Toronto Lab (that's in Markham). Apps in the cloud, Node.js and micro-services, moving away from big monolithic applications. I tweet and blog about my experiences at dejanglozic.com.
  3. First reaction “Oh, I got to attend!”. Second reaction “In fact, I should present!”. Third reaction: “What is Reactive?”. Similarities with a political concept, design pattern and a JavaScript library didn’t help.
  4. So I studied. After reading and signing the Reactive Manifesto in excitement (6230!!), I started worrying.
  5. I worried because it seems to me that we are shortening the cycle between notable manifestos. Look at some of the famous manifestos:
  6. The Declaration of Independence.
  7. The Declaration of the Rights of Men and Citizen from the French Revolution
  8. A perennial crowd pleaser - Das Kommunistische Manifest (and soon to follow copycats, Anarchist Manifesto and Fascist Manifesto).
  9. That’s all nice but why exactly should we worry?
  10. Wikipedia trends. XX - golden age of manifestos. In 14 years of XXI, already as many as XIX. As many technical manifestos in 14 years of XXI as XX. At this rate, we will have 57 by the end of the century.
  11. Producing more and more of anything over time causes inflation, which reduces the impact and effectiveness of each manifesto.
  12. If we produce a huge number of manifestos, we can even create a hyper-inflation. Now, how can an illustrate the results of a hyper-inflation?
  13. This should do it. This is an actual paper note from FRY of 500 billion dinars. Sadly, I was there to use it in 1993. You could buy a loaf of bread in the morning, a bagel in the evening for it. We should try to avoid inflation.
  14. Avoid ruining manifestos by the consulting-industrial complex. In this tweet @pragdave was so excited he didn’t spot a typo. Twitter needs an ‘Oops’ button.
  15. In the light of the fate of the Agile Manifesto, Russ Miles decided to pre-empt the creation of one for Micro-services with a tongue-in-cheek Micro-service ManifestNO.
  16. He even proposed an official mascot. You can order it from Amazon for $29.95.
  17. Avoid the urge to create many new manifestos. For Reactive, that ship has sailed. Try not to give up on them easily - worthy goal. We should not confuse developers by making them chose (like languages/platforms - Node.js, Scala/Akka, Go).
  18. Make manifestos complement each other, adding to the growing understanding.
  19. Second presentation of the evening. Intriguing title, talk should match. Grand unifying theory of distributed system manifestos.
  20. First up (chronologically) - 12-factor App by Adam Wiggins and Heroku. It puts forward a checklist that marks a good cloud app, using Roman numerals.
  21. Factors are marked in Roman numerals because they make manifestos sound 50% more effective.
  22. Code in a source control, no sharing. One app - one codebase. Self-contained, no implicit dependencies - full dependency list, package manager. Configs vary by deploys, code doesn’t. Can you open source? Everything is a backing service.
  23. No code changes in a running system. No changes to builds. Stateless - pre-cursor for clustering. Inversion of control - no Web container. With share nothing, easy to cluster.
  24. Necessary for many deploys per day, zero-downtime Keep DEV/QA/PROD environment as similar as possible to avoid surprises Let the log processing tools handle storage and analysis Admin tasks to the same codebase as the services
  25. What are all these apps amounting to? Why am I doing all this?
  26. We are still yearning for answers.
  27. You know this one: reactive to events, load, failure and users.
  28. Reactive manifesto adds to our understanding because it answers the ‘Why?’ question.
  29. We can now add the third ingredient - micro-services. They don’t have a manifesto (thanks, Russ!) but they are all the buzz these days.
  30. Martin Fowler - HBO-worthy 7 episode epic on micro-services. Then Manifesto’s own Jonas zinged him.
  31. We can focus functionality better and isolate bad code. DevOps. Multiple teams in parallel. Bizzaro world to on-prem. Use message queues.
  32. Each service individually clusterable. Each service can use different technology. APIs serve mobile as well. Each API service is self-documenting.
  33. Reactive to events - MQ between services, WebSockets for server push.
  34. Instead of competing with each other, three manifestos are complementary because they address different questions.
  35. This allows us to see the forrest, not just the trees.
  36. This gives us purpose. Async services, message queues - events. Local clustering - load. Paranoid programming, isolation - failure. All this makes the system responsive to users.
  37. Share-nothing - easy clustering. Using async platforms such as JS/Node.js or Go or Scala/Play. Using RabbitMQ, Redis, WebSockets. DevOps, Blue-Green deployment etc.
  38. Almost sounds like a life coach sales pitch. Sweet!
  39. There you go - let’s hope we learned something from the Agile Manifesto experience, and will not let consultants ruin Reactive.
  40. But I may be hopelessly naive…
  41. Before I close, are there any questions?
  42. Thank you. Find me on Twitter or visit my blog at dejanglozic.com.