SlideShare a Scribd company logo
Microservices and Lagom
Jamie Allen
Sr. Director of Global Services

@jamie_allen
Agenda
•  What are “microservices?”
•  What do we want in our services?
•  Lagom
•  Questions
Traditional application architectures
and platforms are obsolete.
Gartner
What are we trying to achieve?
•  Accelerate teams
•  Reduce dependency nightmares
•  Increase application throughput
Calvin and Hobbes, Bill Waterston
“Microservices” is a lousy term
•  Size is irrelevant

Bing Images
We want isolation
•  At the API
•  In our source
•  For our data
Wikipedia, Creative Commons, created by DFoerster
We want realistic data management
•  Transactions, especially distributed, will not work
•  Consistency is an anti-pattern at scale
•  CQRS and Event Sourcing, not CRUD
•  Distributed locks and shared data will limit you
Think in terms of compensation, not prevention.
Kevin Webber, Lightbend
We want asynchronous APIs
•  Synchronous request/response semantics are expensive
•  Use REST for external APIs 
•  Stream-based interactions for inter-service communication
US Postal Service
We want immutable deployments
•  We can bind a build of our application to a version of our
configuration and always know what is currently running 
•  You cannot edit configuration and keep running
Dilbert, Scott Adams
We want to expose a “tip of the iceberg”
•  Users see the public API
•  The API hides much complexity
MyBluePuzzle.org
We want DDD (but not a requirement)
•  Solving your pain is
•  In a greenfield project, Bounded Contexts and Aggregate
Roots can help you to decompose the problem
We want to ACID v2
•  Associativity and Commutativity are the path to scale
•  Idempotent and Distributed

Wikipedia, Creative Commons, created by Weston.pace
We will have additional operational complexity
•  Proxying
•  Service Discovery
•  Stateless aggregation
•  Orchestration
•  Failure management
•  Versioning

Complexityandotherbeasts.com
20160317 lagom sf scala
•  Service API
•  Persistence API
•  Development environment
•  Production environment
Lagom
•  IO and communication
•  Streaming between services as a first-class concept
•  Higher level of resilience and scalability with no blocking
•  Service is a Bounded Context in DDD
Lagom Service API
•  Event sourced (deltas) with Cassandra backend by default
•  No object/relational impedance mismatch
•  Can always replay to determine current state
•  Allows you to learn more from your data later
•  Persistent entity is an Aggregate Root in DDD
•  Can be overridden for CRUD if you want
Lagom Persistence API
•  Create single project definition in sbt, use runAll, includes:
•  In-memory Cassandra with own keyspaces
•  A service locator
•  A service gateway
•  Overload Mode: recompile and redeploy on save
Development Environment
•  Deployment
•  Monitoring
•  Scaling
•  Can test locally with ConductR then push to production
•  Launch multiple instances with a single command
Production Environment (Lightbend RP)
Links
Project Site:
http://www.lightbend.com/lagom

GitHub Repo:
https://github.com/lagom

Documentation:
http://www.lagomframework.com/documentation/1.0.x/Home.html
Questions?

More Related Content

PDF
Effective Akka v2
PPTX
20160520 The Future of Services
PPTX
Atlas for Enterprise
PDF
Leapfrog into Serverless - a Deloitte-Amtrak Case Study | Serverless Confere...
PPTX
CQRS and Event Sourcing, An Alternative Architecture for DDD
PDF
Design patterns for microservice architecture
PDF
An eventful tour from enterprise integration to serverless and functions
PDF
Developing microservices with aggregates (SpringOne platform, #s1p)
Effective Akka v2
20160520 The Future of Services
Atlas for Enterprise
Leapfrog into Serverless - a Deloitte-Amtrak Case Study | Serverless Confere...
CQRS and Event Sourcing, An Alternative Architecture for DDD
Design patterns for microservice architecture
An eventful tour from enterprise integration to serverless and functions
Developing microservices with aggregates (SpringOne platform, #s1p)

What's hot (20)

PPTX
Cqrs and event sourcing in azure
PDF
The Future of Services: Building Asynchronous, Resilient and Elastic Systems
PDF
Cloudstate - Towards Stateful Serverless
PDF
Microservices: Architecture for the Real-time Organization
PPTX
Intellias CQRS Framework
PPTX
.Net Microservices with Event Sourcing, CQRS, Docker and... Windows Server 20...
PPTX
Microservice.net by sergey seletsky
PPTX
Our way to microservices
PDF
Microservices Journey NYC
PPTX
Building a Reliable Cloud Bank in Java | Starling Bank | QCon 2018
PPTX
A Microservice Journey
PPTX
Architecting Microservices in .Net
PPTX
Real World Event Sourcing and CQRS
PPTX
Go Serverless with Azure
PPTX
Microservices Journey Fall 2017
ODP
Microservices Patterns and Anti-Patterns
PDF
Developing applications with a microservice architecture (SVforum, microservi...
PDF
Digital Transformation with Kubernetes, Containers, and Microservices
PDF
#JaxLondon keynote: Developing applications with a microservice architecture
Cqrs and event sourcing in azure
The Future of Services: Building Asynchronous, Resilient and Elastic Systems
Cloudstate - Towards Stateful Serverless
Microservices: Architecture for the Real-time Organization
Intellias CQRS Framework
.Net Microservices with Event Sourcing, CQRS, Docker and... Windows Server 20...
Microservice.net by sergey seletsky
Our way to microservices
Microservices Journey NYC
Building a Reliable Cloud Bank in Java | Starling Bank | QCon 2018
A Microservice Journey
Architecting Microservices in .Net
Real World Event Sourcing and CQRS
Go Serverless with Azure
Microservices Journey Fall 2017
Microservices Patterns and Anti-Patterns
Developing applications with a microservice architecture (SVforum, microservi...
Digital Transformation with Kubernetes, Containers, and Microservices
#JaxLondon keynote: Developing applications with a microservice architecture
Ad

Viewers also liked (19)

PDF
20160520 what youneedtoknowaboutlambdas
PPTX
20160524 ibm fast data meetup
PPTX
Construction evaluation
PDF
PURCHASING A HOUSE
PDF
Rassegna stampa L'Unità 31 marzo 2009
PDF
MyData-nordic-model
DOCX
Formal signing of Deed of Absolute Sale of 2-hectare Parcel of Land
DOC
Raíña Meca
PPTX
Comp clim[1]
ODP
cachorro perigoso
PPTX
Evaluation question 3 - What have you learned from your audience feedback?
PPTX
Paul Verhaeghe en Christien Brinkgreve in Uden 19 januari 2016
PPTX
20160609 nike techtalks reactive applications tools of the trade
PPTX
20161027 scala io_keynote
PPTX
Ingenieria romana
PDF
Business Plan Example
PPT
Monomios
PPT
PDF
BigData in Insurance. Breakfast@Google. Insurance (2015 10)
20160520 what youneedtoknowaboutlambdas
20160524 ibm fast data meetup
Construction evaluation
PURCHASING A HOUSE
Rassegna stampa L'Unità 31 marzo 2009
MyData-nordic-model
Formal signing of Deed of Absolute Sale of 2-hectare Parcel of Land
Raíña Meca
Comp clim[1]
cachorro perigoso
Evaluation question 3 - What have you learned from your audience feedback?
Paul Verhaeghe en Christien Brinkgreve in Uden 19 januari 2016
20160609 nike techtalks reactive applications tools of the trade
20161027 scala io_keynote
Ingenieria romana
Business Plan Example
Monomios
BigData in Insurance. Breakfast@Google. Insurance (2015 10)
Ad

Similar to 20160317 lagom sf scala (20)

PPTX
Closing keynote by Jamie Allen
PDF
Stay productive_while_slicing_up_the_monolith
PDF
Taking the friction out of microservice frameworks with Lagom
PDF
Stay productive while slicing up the monolith
PDF
Stay productive while slicing up the monolith
PDF
Stay productive while slicing up the monolith
PDF
How lagom helps to build real world microservice systems
PDF
Microservices Manchester: How Lagom Helps to Build Real World Microservice Sy...
ODP
Introduction to Lagom Framework
PDF
Modernizing Applications with Microservices
PDF
Lagom : Reactive microservice framework
PDF
Microservice Come in Systems
PDF
Lagom - Mircoservices "Just Right"
PDF
Event Sourcing in less than 20 minutes - With Akka and Java 8
PPTX
Inside Wordnik's Architecture
PPTX
The Big Picture - Integrating Buzzwords
PDF
Java Day Minsk 2016 Keynote about Microservices in real world
KEY
Cloud computing in academic libraries
PPTX
Microservices Architecture
PPTX
Let's talk about... Microservices
Closing keynote by Jamie Allen
Stay productive_while_slicing_up_the_monolith
Taking the friction out of microservice frameworks with Lagom
Stay productive while slicing up the monolith
Stay productive while slicing up the monolith
Stay productive while slicing up the monolith
How lagom helps to build real world microservice systems
Microservices Manchester: How Lagom Helps to Build Real World Microservice Sy...
Introduction to Lagom Framework
Modernizing Applications with Microservices
Lagom : Reactive microservice framework
Microservice Come in Systems
Lagom - Mircoservices "Just Right"
Event Sourcing in less than 20 minutes - With Akka and Java 8
Inside Wordnik's Architecture
The Big Picture - Integrating Buzzwords
Java Day Minsk 2016 Keynote about Microservices in real world
Cloud computing in academic libraries
Microservices Architecture
Let's talk about... Microservices

More from shinolajla (12)

PPTX
20180416 reactive is_a_product_rs
PDF
20180416 reactive is_a_product
PPTX
20150411 mutability matrix of pain scala
PPTX
Reactive applications tools of the trade huff po
PDF
20140228 fp and_performance
PDF
Effective akka scalaio
PDF
Cpu Caches
PDF
Real world akka recepies v3
PDF
Effective actors japanesesub
PDF
Effective Actors
PPTX
Taxonomy of Scala
PPTX
CPU Caches
20180416 reactive is_a_product_rs
20180416 reactive is_a_product
20150411 mutability matrix of pain scala
Reactive applications tools of the trade huff po
20140228 fp and_performance
Effective akka scalaio
Cpu Caches
Real world akka recepies v3
Effective actors japanesesub
Effective Actors
Taxonomy of Scala
CPU Caches

Recently uploaded (20)

PDF
Empathic Computing: Creating Shared Understanding
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Electronic commerce courselecture one. Pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
A Presentation on Artificial Intelligence
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
cuic standard and advanced reporting.pdf
PDF
Machine learning based COVID-19 study performance prediction
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Approach and Philosophy of On baking technology
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Network Security Unit 5.pdf for BCA BBA.
Empathic Computing: Creating Shared Understanding
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Electronic commerce courselecture one. Pdf
Building Integrated photovoltaic BIPV_UPV.pdf
Encapsulation_ Review paper, used for researhc scholars
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
A Presentation on Artificial Intelligence
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
cuic standard and advanced reporting.pdf
Machine learning based COVID-19 study performance prediction
The Rise and Fall of 3GPP – Time for a Sabbatical?
Chapter 3 Spatial Domain Image Processing.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Approach and Philosophy of On baking technology
Mobile App Security Testing_ A Comprehensive Guide.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
Reach Out and Touch Someone: Haptics and Empathic Computing
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
Network Security Unit 5.pdf for BCA BBA.

20160317 lagom sf scala

  • 1. Microservices and Lagom Jamie Allen Sr. Director of Global Services @jamie_allen
  • 2. Agenda •  What are “microservices?” •  What do we want in our services? •  Lagom •  Questions
  • 3. Traditional application architectures and platforms are obsolete. Gartner
  • 4. What are we trying to achieve? •  Accelerate teams •  Reduce dependency nightmares •  Increase application throughput Calvin and Hobbes, Bill Waterston
  • 5. “Microservices” is a lousy term •  Size is irrelevant Bing Images
  • 6. We want isolation •  At the API •  In our source •  For our data Wikipedia, Creative Commons, created by DFoerster
  • 7. We want realistic data management •  Transactions, especially distributed, will not work •  Consistency is an anti-pattern at scale •  CQRS and Event Sourcing, not CRUD •  Distributed locks and shared data will limit you Think in terms of compensation, not prevention. Kevin Webber, Lightbend
  • 8. We want asynchronous APIs •  Synchronous request/response semantics are expensive •  Use REST for external APIs •  Stream-based interactions for inter-service communication US Postal Service
  • 9. We want immutable deployments •  We can bind a build of our application to a version of our configuration and always know what is currently running •  You cannot edit configuration and keep running Dilbert, Scott Adams
  • 10. We want to expose a “tip of the iceberg” •  Users see the public API •  The API hides much complexity MyBluePuzzle.org
  • 11. We want DDD (but not a requirement) •  Solving your pain is •  In a greenfield project, Bounded Contexts and Aggregate Roots can help you to decompose the problem
  • 12. We want to ACID v2 •  Associativity and Commutativity are the path to scale •  Idempotent and Distributed Wikipedia, Creative Commons, created by Weston.pace
  • 13. We will have additional operational complexity •  Proxying •  Service Discovery •  Stateless aggregation •  Orchestration •  Failure management •  Versioning Complexityandotherbeasts.com
  • 15. •  Service API •  Persistence API •  Development environment •  Production environment Lagom
  • 16. •  IO and communication •  Streaming between services as a first-class concept •  Higher level of resilience and scalability with no blocking •  Service is a Bounded Context in DDD Lagom Service API
  • 17. •  Event sourced (deltas) with Cassandra backend by default •  No object/relational impedance mismatch •  Can always replay to determine current state •  Allows you to learn more from your data later •  Persistent entity is an Aggregate Root in DDD •  Can be overridden for CRUD if you want Lagom Persistence API
  • 18. •  Create single project definition in sbt, use runAll, includes: •  In-memory Cassandra with own keyspaces •  A service locator •  A service gateway •  Overload Mode: recompile and redeploy on save Development Environment
  • 19. •  Deployment •  Monitoring •  Scaling •  Can test locally with ConductR then push to production •  Launch multiple instances with a single command Production Environment (Lightbend RP)