SlideShare a Scribd company logo
Stay Productive While Slicing Up the
Monolith
Markus Eisele
@myfear
Classical Architectures?
Application	Server
EAR	- Enterprise	Archive
RESTMobile
Web
UI
.JAR.JAR
.JAR
.JAR.JAR
.JAR
.JAR
.JAR
.JAR
.JAR
Browser RDBMS

Recommended for you

WSO2Con USA 2017: Scalable Real-time Complex Event Processing at Uber
WSO2Con USA 2017: Scalable Real-time Complex Event Processing at UberWSO2Con USA 2017: Scalable Real-time Complex Event Processing at Uber
WSO2Con USA 2017: Scalable Real-time Complex Event Processing at Uber

The Marketplace data team at Uber has built a scalable complex event processing platform to solve many challenging real-time data needs for various Uber products. This platform has been in production for more than a year and supports over 100 real-time data use cases with a team of 3. In this talk, we will share the detail of the design and our experience, and how we employ Siddhi, Kafka and Samza at scale.

 
by WSO2
wso2con usa 2017uberreal-time analytics
Micro service architecture
Micro service architecture  Micro service architecture
Micro service architecture

This document provides an overview of microservice architecture (MSA). It describes the characteristics of MSA, including small, independent services focused on a single business capability. It covers service interaction styles, service discovery, data management challenges in MSA, deployment strategies, and migration from monolithic to MSA. It also discusses event-driven architecture, API gateways, common design patterns, and challenges with MSA.

microservice
From Monolithic to Microservices in 45 Minutes
From Monolithic to Microservices in 45 MinutesFrom Monolithic to Microservices in 45 Minutes
From Monolithic to Microservices in 45 Minutes

This document discusses moving from monolithic applications to microservices architectures. It begins by defining monolithic applications and how they can become difficult to scale. It then introduces the concepts of decoupling applications and microservices as an architecture where independent processes communicate via APIs. Some benefits discussed are improved scalability, release cycles, and fault tolerance. The document provides examples of microservices for tasks like text search and recommendations. It concludes by recommending starting with a monolithic approach and refactoring to microservices as needs require for scalability.

mongodb daysmongodb
Application	Server
Application	Server
Application	Server
EAR	- Enterprise	Archive
RESTMobile
Web
UI
.JAR.JAR
.JAR
.JAR.JAR
.JAR
.JAR
.JAR
.JAR
.JAR
Browser RDBMS
LL: Building and Scaling Monoliths
• Monolithic application – everything is
package into a single .ear
• Reuse primarily by sharing .jars
• A “big” push to production once or twice a
year
• Single database schema for the entire
application
• >= 500k loc
• >= Heavyweight Infrastructure
• Thousands of Testcases
• Barely New Testcases
• >= 20 Team Member
• The single .ear requiring a multi-month
test cycle /
• Huge bug and feature databases
• User Acceptance Undefined
• Technical Design Approach
• Barely Business Components or Domains
• Requiring multiple team involvement &
significant oversight
• Technical Dept
• Outdated Runtimes (Licenses, Complex
updates)
• Grown applications
More users
http://www.internetlivestats.com/internet-users/
J2EE
Spring
RoR
Akka
Reactive Manifesto
Microservices
New requirements
• Rather than acting on data at rest, modern
software increasingly operates on data
in near real-time.
• 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

Recommended for you

Tomcat and MySQL in Windows Azure
Tomcat and MySQL in Windows Azure Tomcat and MySQL in Windows Azure
Tomcat and MySQL in Windows Azure

This document discusses prerequisites for using Tomcat and MySQL including having a Java Developer Kit (JDK), Eclipse IDE, Tomcat application server, an Azure subscription, and the Azure plugin for Eclipse. It also mentions provisioning role instances, deploying application code, configuring networks, using a distributed cache, monitoring application health and availability using metrics and alerts, and automatically scaling applications using auto scale rules in Azure.

mysqljavaclearbd
Jelastic - DevOps for Java with Docker Containers - Madrid 2015
Jelastic - DevOps for Java with Docker Containers - Madrid 2015Jelastic - DevOps for Java with Docker Containers - Madrid 2015
Jelastic - DevOps for Java with Docker Containers - Madrid 2015

Containers brought new approach for implementation of DevOps workflows. So our CEO, Ruslan Synytsky, devoted a speech to this topic during Madrid meetup and described in details how Java developers can get benefits from Docker containers in Jelastic Cloud.

dockercontainersdevops
12 Things About WebLogic 12.1.3 #oow2014 #otnla15
12 Things About WebLogic 12.1.3 #oow2014 #otnla1512 Things About WebLogic 12.1.3 #oow2014 #otnla15
12 Things About WebLogic 12.1.3 #oow2014 #otnla15

This document summarizes 12 key things to know about Oracle WebLogic Server 12c. It discusses the new lightweight installer, per domain node manager, server templates, dynamic clusters, unified management APIs, Java Mission Control monitoring, built-in WLDF modules, RESTful management APIs, Java EE 7 support, new Maven goals, and using WebLogic with Docker containers. The presentation provides an overview of new and updated features in WebLogic 12c and highlights reasons to upgrade from previous versions.

12cdave cabelusofm
> Traditional application architectures
and platforms are obsolete.
-- Gartner
Modernization!
Module
Module
Module
WebUI
.JAR.JAR
.JAR
.JAR.JAR
.JAR
.JAR
.JAR
.JAR
.JARBrowser RDBMS
RDBMS
RDBMS
Routing	Module
Tracking	Module
Order	Module
Tracker	UIBrowser HistoryDB
Order	DB
RoutesDB
Tracker	UI
Tracker	UI
Browser
Browser

Recommended for you

Flying to clouds - can it be easy? Cloud Native Applications
Flying to clouds - can it be easy? Cloud Native ApplicationsFlying to clouds - can it be easy? Cloud Native Applications
Flying to clouds - can it be easy? Cloud Native Applications

Nowadays "cloud" and "microservice" terms are used all the time, even overused. Does any system must be the "microservices" deployed in the "cloud"? Definitely not! However once you see that your system may benefit from that architecture, the next question is how to get there - how to fly to the clouds? Spring was always about simplifying the complicated aspects of your enterprise system. Netflix went to microservice architecture long before this term even was created. Both are very much contributed to open source software. How can you benefit from joint forces of the both?

cloud native applicationsspring cloudspring cloud netflix
JDD 2016 - Jacek Bukowski - "Flying To Clouds" - Can It Be Easy?
JDD 2016 - Jacek Bukowski - "Flying To Clouds" - Can It Be Easy?JDD 2016 - Jacek Bukowski - "Flying To Clouds" - Can It Be Easy?
JDD 2016 - Jacek Bukowski - "Flying To Clouds" - Can It Be Easy?

Nowadays "cloud" and "microservice" terms are used all the time, even overused. Does any system must be the "microservices" deployed in the "cloud"? Definitely not! However once you see that your system may benefit from that architecture, the next question is how to get there - how to fly to the clouds? Spring was always about simplifying the complicated aspects of your enterprise system. Netflix went to microservice architecture long before this term even was created. Both are very much contributed to open source software. How can you benefit from joint forces of the both?

How Class Data Sharing Can Speed up Your Jakarta EE Application Startup
How Class Data Sharing Can Speed up Your Jakarta EE Application StartupHow Class Data Sharing Can Speed up Your Jakarta EE Application Startup
How Class Data Sharing Can Speed up Your Jakarta EE Application Startup

Java Byte code is OS independent, which means that your application's startup takes more time than a native image. Using the Class Data Sharing functionality introduced in more recent versions of the JVM, you can prepare your application so that it will load very fast. In this presentation, I'll go into more detail what Class Data Sharing is and the differences between the OpenJDK and OpenJ9 versions. With some Jakarta EE demo applications, you will see gains that you can achieve and reduce memory footprint a lot in Docker containers by sharing memory.

javajakartaeecds
REQ: Building and Scaling Microservices
• Lightweight runtime
• Cross – Service Security
• Transaction Management
• Service Scaling
• Load Balancing
• SLA’s
• Flexible Deployment
• Configuration
• Service Discovery
• Service Versions
• Monitoring
• Governance
• Asynchronous communication
• Non-blocking I/O
• Streaming Data
• Polyglot Services
• Modularity (Service definition)
• High performance persistence (CQRS)
• Event handling / messaging (ES)
• Eventual consistency
• API Management
• Health check and recovery
“Microservices” is a lousy term
• Size is irrelevant
We want flexible systems and organizations that can
adapt to their complex environments, make changes
without rigid dependencies and coordination, can
learn, experiment, and exhibit emergent behavior.
We need to build systems for flexibility
and resiliency, not just efficiency and
robustness.
Software Design
Outer Architecture
Methodology and
Organization
Distributed Systems
Datacenter Operating System

Recommended for you

The Next Big Thing: Serverless
The Next Big Thing: ServerlessThe Next Big Thing: Serverless
The Next Big Thing: Serverless

This document summarizes the evolution of cloud computing technologies from virtual machines to containers to serverless computing. It discusses how serverless computing uses cloud functions that are fully managed by the cloud provider, providing significant cost savings over virtual machines by only paying for resources used. While serverless computing reduces operational overhead, it is not suitable for all workloads and has some limitations around cold start times and vendor lock-in. The document promotes serverless computing as the next wave in cloud that can greatly reduce costs and complexity while improving scalability and availability.

azureazure functionscloud
Cf summit2014 roadmap
Cf summit2014 roadmapCf summit2014 roadmap
Cf summit2014 roadmap

The document outlines the roadmap and vision for Cloud Foundry, including: - The mission is to create an open source PaaS with a thriving ecosystem that allows for continuous delivery and an agile experience. - The vision includes features like instant routing, log aggregation, metrics/telemetry, access controls, high availability, and extensibility. - Key areas of focus are applications, services, and the platform (BOSH). This includes features for application policy, routing, runtime, logs/metrics, and identity/security. - The roadmap is agile but focuses on areas like the Diego project, Docker support, .NET runtime, loggregator improvements, and service

Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978

Presentation delivered at JavaOne 2010. Talks about how to use Java to build highly scalable and reliable applications on Windows Azure.

azurejavajavaone
Software Design
Architecture Principles
• Single Responsible Principle
• Service Oriented Architecture
– Encapsulation
– Separation of Concern
– Loose Coupling
• Hexagonal Architecture
Design Patterns
• Domain-driven Design
• Bounded Contexts
• Event Sourcing
• CQRS
• Eventual Consistency
• Context Maps
Design Best Practices
• Design for Automation
• Designed for failure
• Service load balancing and automatic scaling
• Design for Data Separation
• Design for Integrity
• Design for Performance
Strategies For Decomposing
Verb or Use Case
e.g. Checkout UI
Noun
e.g. Catalog product service
Single Responsible Principle
e.g. Unix utilities
• Reactive Microservices Framework for the JVM
• Focused on right sized services
• Asynchronous I/O and communication as first class
priorities
• Highly productive development environment
• Takes you all the way to production
What is Lagom?

Recommended for you

How to extend WSO2 Carbon for your middleware needs
How to extend WSO2 Carbon for your middleware needsHow to extend WSO2 Carbon for your middleware needs
How to extend WSO2 Carbon for your middleware needs

WSO2 Carbon provides extension points that allow customization. Sam is evaluating WSO2 middleware for PhotographersRUs and has several questions. WSO2 products can be configured to support single sign-on through the authenticators.xml file. User stores can also be customized or replaced to support PhotographersRUs' multiple user stores. Deployments can be synchronized across a cluster using the repository deployment directory. Monitoring is supported through valves, ESB mediators, and WSO2's Business Activity Monitor. The ESB can integrate new retail POS systems using transports, formats, listeners and builders.

 
by WSO2
Leveraging azure and cello for delivering highly scalable multi tenant
Leveraging azure and cello for delivering highly scalable multi tenantLeveraging azure and cello for delivering highly scalable multi tenant
Leveraging azure and cello for delivering highly scalable multi tenant

The document discusses leveraging Azure and Cello to build scalable multi-tenant SaaS solutions. Cello provides a framework for developing SaaS applications that can be deployed on Azure. It includes features for engineering, operations, and subscription management. Using Cello with Azure allows applications to benefit from Cello's SaaS capabilities and Azure's infrastructure management and scalability. ISVs can build applications that can easily scale on Azure to serve growing numbers of customers.

multi tenantceelotenant
Webinar slides: Introduction to Database Proxies (for MySQL)
Webinar slides: Introduction to Database Proxies (for MySQL)Webinar slides: Introduction to Database Proxies (for MySQL)
Webinar slides: Introduction to Database Proxies (for MySQL)

Watch this on-demand webinar on database proxies (for MySQL) by Gilles Rayrat, VP of Engineering at Continuent. Gilles is one of the most knowledgeable experts in the MySQL community when it comes to database proxies and shares some of his knowledge in this initial webinar on that topic. From a simple database connectivity scenario all the way through to advanced database connectivity setups and proxy functionalities, this webinar provides an in-depth introduction to database proxies (for MySQL). AGENDA - A simple database connectivity scenario - The concept of a clustered database - Failure in a clustered database: the nightmare scenario - The solution: use a proxy! Preferably a smart one … - Advanced database connectivity setups - Advanced proxy functionalities - Recap SPEAKER Gilles Rayrat, VP of Engineering, Continuent, has over 20 years experience in software engineering. Previously holding positions at Orange and Xerox, he joined the Continuent adventure in 2005. As the connectivity expert at Continuent, he has worn many hats including software development, QA, support, project and operations management. Gilles has held most of the engineering positions that he now manages, giving him both deep and wide experience.

mysqlproxydatabase proxy
• Use bounded contexts as boundaries for services!
(Domain Driven Design)
• The event log is the book of record! (Event Sourcing)
• Separate the read and write sides! (CQRS)
• Microservices, too, need to be elastic and resilient! (Reactive)
• Developer experience matters! (The Lagom development
setup)
Highly opinionated!
• Service API
• Persistence API
• Development environment
• Production environment
The parts
• 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
Stay productive while slicing up the monolith

Recommended for you

Maxta VM-centric Storage
Maxta VM-centric StorageMaxta VM-centric Storage
Maxta VM-centric Storage

In this slidecast, Yoram Novick from Maxta describes the company's new software-defined, VM-centric Storage solutions. "The complexities and high costs of traditional enterprise storage are magnified in the virtual data center," said Yoram Novick, Founder and CEO of Maxta. "After being told repeatedly that expensive storage arrays are the only way to support enterprise applications in virtualized environments, IT organizations finally have an alternative to storage arrays that significantly reduces complexity and cost. Maxta has broken the code for integrating storage and compute into a converged virtual data center." Learn more: http://maxta.com Watch the video presentation: http://wp.me/p3RLEV-1wl

virtualizationstorageinsidebigdata
DC/OS: The definitive platform for modern apps
DC/OS: The definitive platform for modern appsDC/OS: The definitive platform for modern apps
DC/OS: The definitive platform for modern apps

DC/OS is an open source platform that provides container orchestration and management using Mesos. It allows running applications and services across data center infrastructure including bare metal, VMs, and cloud. DC/OS provides services like Marathon for container orchestration, security, monitoring, load balancing and service discovery. It has features like high resource utilization, mixed workload support, elastic scalability, high availability and zero downtime upgrades.

paasdevopsdcos
CQRS and Event Sourcing for Java Developers
CQRS and Event Sourcing for Java DevelopersCQRS and Event Sourcing for Java Developers
CQRS and Event Sourcing for Java Developers

This document discusses CQRS and event sourcing patterns for Java developers. It begins with an overview of classical monolithic architectures versus modern microservice architectures. It then contrasts CRUD with CQRS, explaining that CQRS separates reads from writes by using commands for writes and queries for reads. Events evolve from commands and represent things that occurred in the past. The document provides an example implementation using the Lagom framework that demonstrates separating the write side from the read side and persisting events. It emphasizes that with this approach, all state changes are stored as events and the current state can be recreated by replaying events. The document encourages the use of Lagom due to benefits like asynchronous programming, developer productivity, and production readiness.

cqrsreactivejava
Getting started.
mvn archetype:generate
-DarchetypeGroupId=com.lightbend.lagom
-DarchetypeArtifactId=maven-archetype-lagom-java
-DarchetypeVersion=1.2.2
Creating a new Lagom project
Stay productive while slicing up the monolith
$ cd my-first-system
$ mvn lagom:runAll ...
[info] Starting embedded Cassandra server
..........
[info] Cassandra server running at 127.0.0.1:4000
[info] Service locator is running at
http://localhost:8000
[info] Service gateway is running at
http://localhost:9000
..........
[info] Service helloworld-impl listening for HTTP on
0:0:0:0:0:0:0:0:24266
[info] Service hellostream-impl listening for HTTP on
0:0:0:0:0:0:0:0:26230 (Services started, press enter
to stop and go back to the console...)

Recommended for you

Hyperscale Computing, Enterprise Agility with Mesosphere
Hyperscale Computing, Enterprise Agility with MesosphereHyperscale Computing, Enterprise Agility with Mesosphere
Hyperscale Computing, Enterprise Agility with Mesosphere

Kirk Marty, Enterprise Sales Engineer at Mesosphere introduction to Hyperscale Computing, Enterprise Agility at Lightbend's Chicago Reactive Roundtable. Learn more: lightbend.com/reactive-roundtable

hyperscalemesosphereroundtable
Nine Neins - where Java EE will never take you
Nine Neins - where Java EE will never take youNine Neins - where Java EE will never take you
Nine Neins - where Java EE will never take you

Virtual JUG Session: http://www.meetup.com/virtualJUG/events/232052100/ With Microservices taking the software industry by storm, classical Enterprises are forced to re-think what they’ve been doing for almost a decade. It’s not the first time, that technology shocked the well-oiled machine to it’s core. We’ve seen software design paradigms changing over time and also project management methodologies evolving. Old hands might see this as another wave that will gently find it’s way to the shore of daily business. But this time it looks like the influence is bigger than anything we’ve seen before. And the interesting part is, that microservices aren’t new from the core. Talking about compartmentalization and introducing modules belongs to the core skills of architects. Our industry also learned about how to couple services and build them around organizational capabilities. The really new part in microservices based architectures is the way how truly independent services are distributed and connected back together. Building an individual service is easy with all technologies. Building a system out of many is the real challenge because it introduces us to the problem space of distributed systems. And the difference to classical, centralized infrastructures couldn’t be bigger. There are very little concepts from the old world which still fit into a modern architecture. And there are more differences between Java EE and distributed and reactive systems. For example, APIs are inherently synchronous, so most Java EE app servers have to scale by adding thread pools as so many things are blocking on I/O (remote JDBC calls, JTA calls, JNDI look ups, even JMS has a lot of synchronous parts). As we know adding thread pools doesn't get you too far in terms of scalability. This talk is going to explore the nine most important differences between classical middleware and distributed, reactive microservices architectures and explains in which cases the distributed approach takes you, where Java EE never would.

lagomjavaeemicroservices
10 Golden Social Media Rules for Developer Relations Manager
10 Golden Social Media Rules for Developer Relations Manager10 Golden Social Media Rules for Developer Relations Manager
10 Golden Social Media Rules for Developer Relations Manager

Social media is great. Being in contact with people from all over the world and being able to help your community from everywhere is nothing short but amazing. Yet, there are a few things to keep in mind to use these tools to their full extend without failing. This session introduces you to some very basic communication skills and walks you through the 10 golden rules in social media.

social mediarules
Stay productive while slicing up the monolith
The somewhat bigger example!
Cargo	Tracker
https://github.com/lagom/activator-lagom-cargotracker
Registration
Shipping
Frontend Cassandra

Recommended for you

Lightweight Webservices with Sinatra and RestClient
Lightweight Webservices with Sinatra and RestClientLightweight Webservices with Sinatra and RestClient
Lightweight Webservices with Sinatra and RestClient

This document summarizes a talk about using Sinatra and RestClient for building lightweight web services and clients. Sinatra provides a simple and lightweight way to build web applications compared to full-featured frameworks like Rails. RestClient provides a simple way to make HTTP requests from client applications, offering more functionality than Net::HTTP but with less complexity than ActiveResource. Examples of Sinatra and RestClient use include a Git wiki application built in 355 lines of Ruby code and a Heroku client library.

rubyconfrestclientsinatra
DevNexus 2011
DevNexus 2011DevNexus 2011
DevNexus 2011

This document provides an introduction and overview of NoSQL databases. It discusses that while NoSQL databases were created to solve specific pain points around scaling large amounts of data, many situations do not actually require a NoSQL solution. It then covers some common distribution models for NoSQL databases like replication, sharding, and consistent hashing, and provides examples of companies that developed NoSQL databases to solve their particular data problems.

nosqljava
Microservice Come in Systems
Microservice Come in SystemsMicroservice Come in Systems
Microservice Come in Systems

One microservice is not enough and microservices should be built as systems. Building a single microservice is generally easy, but building a system of microservices that are integrated is challenging due to increased complexity from deployment, large development teams, and separating functionality from monolithic applications. The Lagom framework is designed to help with building microservice systems by providing an opinionated development environment, service API, and persistence API to address these challenges.

modernizationmicroservicesscaladays
Stay productive while slicing up the monolith
Now that we have our
bundles, how do we get
into production?
• Lagom doesn’t prescribe any particular production
environment, however out of the box support is
provided for Lightbend ConductR.
• Zookeper based version:
https://github.com/jboner/lagom-service-locator-
zookeeper
• Consul based version:
https://github.com/jboner/lagom-service-locator-consul
Out of the box support for ConductR but..
>sbt bundle:dist
...
[info] Your package is ready in
/Users/myfear/lagom-cargotracker/front-
end/target/universal/front-end-1.0-
SNAPSHOT.zip
Create Service bundles via sbt

Recommended for you

Wild Flies and a Camel Java EE Integration Stories
Wild Flies and a Camel Java EE Integration StoriesWild Flies and a Camel Java EE Integration Stories
Wild Flies and a Camel Java EE Integration Stories

Apache Camel is one of the most complete integration frameworks out there. With more than 150 components and a large community it clearly has it's fans. Deploying the lightweight core is easy. Getting into modules and even more components makes this challenging. There are different approaches to ride that Camel. How to get the most out of it with Java EE and WildFly is exactly the topic of this session. It will introduce you to both Java EE 7 and Apache Camel in a very brief way and follows up with the different integration and deployment scenarios along with introducing the tools which help you the most on the way to your integration solution.

apache camelwildflyjavaee
Wild Flies and a Camel - Chicago JUG - 03/15
Wild Flies and a Camel - Chicago JUG - 03/15Wild Flies and a Camel - Chicago JUG - 03/15
Wild Flies and a Camel - Chicago JUG - 03/15

The document provides examples of Apache Camel route configuration using Java DSL, XML DSL, and code snippets. It demonstrates how to configure routes that use choice/when logic to route messages to different endpoints based on message properties or content. It also includes links to Apache Camel documentation on core concepts like components, data formats, languages, and how to download, use IDE tools, and deploy Camel applications on servers like WildFly.

Build Android OS on OSX
Build Android OS on OSXBuild Android OS on OSX
Build Android OS on OSX

Build Android OS on OS X requires setting up a large virtual disk image for the build files, installing necessary build tools like Git and Python, initializing the source code repository with Repo, syncing the source, and building with Make. CCache can be used to speed up incremental builds by caching object files but it is not recommended to build Android on Mac due to performance and compatibility issues.

androidmacosx
• Creating a bundle configuration file, bundle.conf
• Creating a start script
• Creating a Maven assembly plugin descriptor to create
the bundle zip
• Binding the Maven assembly plugin and
Lagom renameConductRBundle goals to your projects
lifecycle
Create Service Bundles with Maven
http://www.lagomframework.com/documentation/1.3.x/java/ConductR.html
Stay productive while slicing up the monolith
Stay productive while slicing up the monolith
Next Steps! Download and try Lagom!
Project Site:
http://www.lightbend.com/lagom
GitHub Repo:
https://github.com/lagom
Documentation:
http://www.lagomframework.com/documentation/1.3.x/java/Home.html
Example:
https://github.com/typesafehub/activator-lagom-java

Recommended for you

Stream Processing in the Cloud With Data Microservices
Stream Processing in the Cloud With Data MicroservicesStream Processing in the Cloud With Data Microservices
Stream Processing in the Cloud With Data Microservices

The future of scalable data processing is event-driven microservices! They provide a powerful paradigm that solves issues typically associated with distributed applications such as availability, data consistency, or communication complexity, and allows the creation of sophisticated and extensible data processing pipelines. Building on the ease of development and deployment provided by Spring Boot and the cloud native capabilities of Spring Cloud, the Spring Cloud Stream project provides a simple and powerful framework for creating event-driven microservices. They make it easy to develop data-processing Spring Boot applications that build upon the capabilities of Spring Integration. At a higher level of abstraction, Spring Cloud Data Flow is an integrated orchestration layer that provides a highly productive experience for deploying and managing sophisticated data pipelines consisting of standalone microservices. Streams are defined using a DSL abstraction and can be managed via shell and a web UI. Furthermore, a pluggable runtime SPI allows Spring Cloud Data Flow to coordinate these applications across a variety of distributed runtime platforms such as Apache YARN, Cloud Foundry, Kubernetes, or Apache Mesos.

spring cloud streamstream processingspring cloud data flow
MessageBus vs MessageBus
MessageBus vs MessageBusMessageBus vs MessageBus
MessageBus vs MessageBus

This document compares and contrasts message buses and service buses. A message bus allows modules to communicate by sending requests without knowing the destination, and supports replacing or adding providers without impacting other modules. However, modules using a message bus require a common data format. A service bus also allows loosely coupled communication between modules. Additionally, it supports modules communicating even if they use different data formats, through the use of data transformers. This means modules can be switched or changed without requiring other modules to change. However, a service bus is more complex than a message bus and may be overkill for small applications.

Top Mistakes When Writing Reactive Applications - Scala by the Bay 2016
Top Mistakes When Writing Reactive Applications - Scala by the Bay 2016Top Mistakes When Writing Reactive Applications - Scala by the Bay 2016
Top Mistakes When Writing Reactive Applications - Scala by the Bay 2016

Reactive applications are becoming a de-facto industry standard and, if employed correctly, toolkits like Lightbend Reactive Platform make the implementation easier than ever. But the design of these systems might be challenging as it requires particular mindset shift to tackle problems we might not be used to. In this talk, we’re going to discuss the most common things I’ve seen in the field that prevented applications to work as expected. I’d like to talk about typical pitfalls that might cause troubles, about trade-offs that might not be fully understood or important choices that might be overlooked including persistent actors pitfalls, tackling of network partitions, proper implementations of graceful shutdown or distributed transactions, trade-offs of micro-services or actors and more. This talk should be interesting for anyone who is thinking about, implementing, or have already deployed a reactive application. My goal is to provide is to provide a comprehensive explanation of common problems to be sure they won’t be repeated by fellow developers. The talk is a little bit more focused on Lightbend platform but the understanding of the concepts we are going to talk about should be beneficial for everyone interested in this field.

scalaakkadistributed
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
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

More Related Content

What's hot

Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014
Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014
Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014
Arun Gupta
 
From VMs to Containers: Introducing Docker Containers for Linux and Windows S...
From VMs to Containers: Introducing Docker Containers for Linux and Windows S...From VMs to Containers: Introducing Docker Containers for Linux and Windows S...
From VMs to Containers: Introducing Docker Containers for Linux and Windows S...
Ido Flatow
 
Writing Java EE microservices using WildFly Swarm
Writing Java EE microservices using WildFly SwarmWriting Java EE microservices using WildFly Swarm
Writing Java EE microservices using WildFly Swarm
Comsysto Reply GmbH
 
WSO2Con USA 2017: Scalable Real-time Complex Event Processing at Uber
WSO2Con USA 2017: Scalable Real-time Complex Event Processing at UberWSO2Con USA 2017: Scalable Real-time Complex Event Processing at Uber
WSO2Con USA 2017: Scalable Real-time Complex Event Processing at Uber
WSO2
 
Micro service architecture
Micro service architecture  Micro service architecture
Micro service architecture
Ayyappan Paramesh
 
From Monolithic to Microservices in 45 Minutes
From Monolithic to Microservices in 45 MinutesFrom Monolithic to Microservices in 45 Minutes
From Monolithic to Microservices in 45 Minutes
MongoDB
 
Tomcat and MySQL in Windows Azure
Tomcat and MySQL in Windows Azure Tomcat and MySQL in Windows Azure
Tomcat and MySQL in Windows Azure
Guada Casuso
 
Jelastic - DevOps for Java with Docker Containers - Madrid 2015
Jelastic - DevOps for Java with Docker Containers - Madrid 2015Jelastic - DevOps for Java with Docker Containers - Madrid 2015
Jelastic - DevOps for Java with Docker Containers - Madrid 2015
Jelastic Multi-Cloud PaaS
 
12 Things About WebLogic 12.1.3 #oow2014 #otnla15
12 Things About WebLogic 12.1.3 #oow2014 #otnla1512 Things About WebLogic 12.1.3 #oow2014 #otnla15
12 Things About WebLogic 12.1.3 #oow2014 #otnla15
Frank Munz
 
Flying to clouds - can it be easy? Cloud Native Applications
Flying to clouds - can it be easy? Cloud Native ApplicationsFlying to clouds - can it be easy? Cloud Native Applications
Flying to clouds - can it be easy? Cloud Native Applications
Jacek Bukowski
 
JDD 2016 - Jacek Bukowski - "Flying To Clouds" - Can It Be Easy?
JDD 2016 - Jacek Bukowski - "Flying To Clouds" - Can It Be Easy?JDD 2016 - Jacek Bukowski - "Flying To Clouds" - Can It Be Easy?
JDD 2016 - Jacek Bukowski - "Flying To Clouds" - Can It Be Easy?
PROIDEA
 
How Class Data Sharing Can Speed up Your Jakarta EE Application Startup
How Class Data Sharing Can Speed up Your Jakarta EE Application StartupHow Class Data Sharing Can Speed up Your Jakarta EE Application Startup
How Class Data Sharing Can Speed up Your Jakarta EE Application Startup
Rudy De Busscher
 
The Next Big Thing: Serverless
The Next Big Thing: ServerlessThe Next Big Thing: Serverless
The Next Big Thing: Serverless
Doug Vanderweide
 
Cf summit2014 roadmap
Cf summit2014 roadmapCf summit2014 roadmap
Cf summit2014 roadmap
James Bayer
 
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
David Chou
 
How to extend WSO2 Carbon for your middleware needs
How to extend WSO2 Carbon for your middleware needsHow to extend WSO2 Carbon for your middleware needs
How to extend WSO2 Carbon for your middleware needs
WSO2
 
Leveraging azure and cello for delivering highly scalable multi tenant
Leveraging azure and cello for delivering highly scalable multi tenantLeveraging azure and cello for delivering highly scalable multi tenant
Leveraging azure and cello for delivering highly scalable multi tenant
kanimozhin
 
Webinar slides: Introduction to Database Proxies (for MySQL)
Webinar slides: Introduction to Database Proxies (for MySQL)Webinar slides: Introduction to Database Proxies (for MySQL)
Webinar slides: Introduction to Database Proxies (for MySQL)
Continuent
 
Maxta VM-centric Storage
Maxta VM-centric StorageMaxta VM-centric Storage
Maxta VM-centric Storage
inside-BigData.com
 
DC/OS: The definitive platform for modern apps
DC/OS: The definitive platform for modern appsDC/OS: The definitive platform for modern apps
DC/OS: The definitive platform for modern apps
Datio Big Data
 

What's hot (20)

Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014
Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014
Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014
 
From VMs to Containers: Introducing Docker Containers for Linux and Windows S...
From VMs to Containers: Introducing Docker Containers for Linux and Windows S...From VMs to Containers: Introducing Docker Containers for Linux and Windows S...
From VMs to Containers: Introducing Docker Containers for Linux and Windows S...
 
Writing Java EE microservices using WildFly Swarm
Writing Java EE microservices using WildFly SwarmWriting Java EE microservices using WildFly Swarm
Writing Java EE microservices using WildFly Swarm
 
WSO2Con USA 2017: Scalable Real-time Complex Event Processing at Uber
WSO2Con USA 2017: Scalable Real-time Complex Event Processing at UberWSO2Con USA 2017: Scalable Real-time Complex Event Processing at Uber
WSO2Con USA 2017: Scalable Real-time Complex Event Processing at Uber
 
Micro service architecture
Micro service architecture  Micro service architecture
Micro service architecture
 
From Monolithic to Microservices in 45 Minutes
From Monolithic to Microservices in 45 MinutesFrom Monolithic to Microservices in 45 Minutes
From Monolithic to Microservices in 45 Minutes
 
Tomcat and MySQL in Windows Azure
Tomcat and MySQL in Windows Azure Tomcat and MySQL in Windows Azure
Tomcat and MySQL in Windows Azure
 
Jelastic - DevOps for Java with Docker Containers - Madrid 2015
Jelastic - DevOps for Java with Docker Containers - Madrid 2015Jelastic - DevOps for Java with Docker Containers - Madrid 2015
Jelastic - DevOps for Java with Docker Containers - Madrid 2015
 
12 Things About WebLogic 12.1.3 #oow2014 #otnla15
12 Things About WebLogic 12.1.3 #oow2014 #otnla1512 Things About WebLogic 12.1.3 #oow2014 #otnla15
12 Things About WebLogic 12.1.3 #oow2014 #otnla15
 
Flying to clouds - can it be easy? Cloud Native Applications
Flying to clouds - can it be easy? Cloud Native ApplicationsFlying to clouds - can it be easy? Cloud Native Applications
Flying to clouds - can it be easy? Cloud Native Applications
 
JDD 2016 - Jacek Bukowski - "Flying To Clouds" - Can It Be Easy?
JDD 2016 - Jacek Bukowski - "Flying To Clouds" - Can It Be Easy?JDD 2016 - Jacek Bukowski - "Flying To Clouds" - Can It Be Easy?
JDD 2016 - Jacek Bukowski - "Flying To Clouds" - Can It Be Easy?
 
How Class Data Sharing Can Speed up Your Jakarta EE Application Startup
How Class Data Sharing Can Speed up Your Jakarta EE Application StartupHow Class Data Sharing Can Speed up Your Jakarta EE Application Startup
How Class Data Sharing Can Speed up Your Jakarta EE Application Startup
 
The Next Big Thing: Serverless
The Next Big Thing: ServerlessThe Next Big Thing: Serverless
The Next Big Thing: Serverless
 
Cf summit2014 roadmap
Cf summit2014 roadmapCf summit2014 roadmap
Cf summit2014 roadmap
 
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
 
How to extend WSO2 Carbon for your middleware needs
How to extend WSO2 Carbon for your middleware needsHow to extend WSO2 Carbon for your middleware needs
How to extend WSO2 Carbon for your middleware needs
 
Leveraging azure and cello for delivering highly scalable multi tenant
Leveraging azure and cello for delivering highly scalable multi tenantLeveraging azure and cello for delivering highly scalable multi tenant
Leveraging azure and cello for delivering highly scalable multi tenant
 
Webinar slides: Introduction to Database Proxies (for MySQL)
Webinar slides: Introduction to Database Proxies (for MySQL)Webinar slides: Introduction to Database Proxies (for MySQL)
Webinar slides: Introduction to Database Proxies (for MySQL)
 
Maxta VM-centric Storage
Maxta VM-centric StorageMaxta VM-centric Storage
Maxta VM-centric Storage
 
DC/OS: The definitive platform for modern apps
DC/OS: The definitive platform for modern appsDC/OS: The definitive platform for modern apps
DC/OS: The definitive platform for modern apps
 

Viewers also liked

CQRS and Event Sourcing for Java Developers
CQRS and Event Sourcing for Java DevelopersCQRS and Event Sourcing for Java Developers
CQRS and Event Sourcing for Java Developers
Markus Eisele
 
Hyperscale Computing, Enterprise Agility with Mesosphere
Hyperscale Computing, Enterprise Agility with MesosphereHyperscale Computing, Enterprise Agility with Mesosphere
Hyperscale Computing, Enterprise Agility with Mesosphere
Markus Eisele
 
Nine Neins - where Java EE will never take you
Nine Neins - where Java EE will never take youNine Neins - where Java EE will never take you
Nine Neins - where Java EE will never take you
Markus Eisele
 
10 Golden Social Media Rules for Developer Relations Manager
10 Golden Social Media Rules for Developer Relations Manager10 Golden Social Media Rules for Developer Relations Manager
10 Golden Social Media Rules for Developer Relations Manager
Markus Eisele
 
Lightweight Webservices with Sinatra and RestClient
Lightweight Webservices with Sinatra and RestClientLightweight Webservices with Sinatra and RestClient
Lightweight Webservices with Sinatra and RestClient
Adam Wiggins
 
DevNexus 2011
DevNexus 2011DevNexus 2011
DevNexus 2011
boorad
 
Microservice Come in Systems
Microservice Come in SystemsMicroservice Come in Systems
Microservice Come in Systems
Markus Eisele
 
Wild Flies and a Camel Java EE Integration Stories
Wild Flies and a Camel Java EE Integration StoriesWild Flies and a Camel Java EE Integration Stories
Wild Flies and a Camel Java EE Integration Stories
Markus Eisele
 
Wild Flies and a Camel - Chicago JUG - 03/15
Wild Flies and a Camel - Chicago JUG - 03/15Wild Flies and a Camel - Chicago JUG - 03/15
Wild Flies and a Camel - Chicago JUG - 03/15
Markus Eisele
 
Build Android OS on OSX
Build Android OS on OSXBuild Android OS on OSX
Build Android OS on OSX
Pietro Alberto Rossi
 
Stream Processing in the Cloud With Data Microservices
Stream Processing in the Cloud With Data MicroservicesStream Processing in the Cloud With Data Microservices
Stream Processing in the Cloud With Data Microservices
marius_bogoevici
 
MessageBus vs MessageBus
MessageBus vs MessageBusMessageBus vs MessageBus
MessageBus vs MessageBus
Nguyen Trung Kien
 
Top Mistakes When Writing Reactive Applications - Scala by the Bay 2016
Top Mistakes When Writing Reactive Applications - Scala by the Bay 2016Top Mistakes When Writing Reactive Applications - Scala by the Bay 2016
Top Mistakes When Writing Reactive Applications - Scala by the Bay 2016
Petr Zapletal
 
OpenShift for Java EE Developers
OpenShift for Java EE DevelopersOpenShift for Java EE Developers
OpenShift for Java EE Developers
Markus Eisele
 
THEFT-PROOF JAVA EE - SECURING YOUR JAVA EE APPLICATIONS
 THEFT-PROOF JAVA EE - SECURING YOUR JAVA EE APPLICATIONS THEFT-PROOF JAVA EE - SECURING YOUR JAVA EE APPLICATIONS
THEFT-PROOF JAVA EE - SECURING YOUR JAVA EE APPLICATIONS
Markus Eisele
 
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at DevNexus 2017
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at DevNexus 2017DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at DevNexus 2017
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at DevNexus 2017
Baruch Sadogursky
 
Community and Java EE @ DevConf.CZ
Community and Java EE @ DevConf.CZCommunity and Java EE @ DevConf.CZ
Community and Java EE @ DevConf.CZ
Markus Eisele
 
2017 lvl1 api presentation march2017
2017 lvl1 api presentation march20172017 lvl1 api presentation march2017
2017 lvl1 api presentation march2017
Paul Nicholas
 
Lightbend Lagom: Microservices Just Right
Lightbend Lagom: Microservices Just RightLightbend Lagom: Microservices Just Right
Lightbend Lagom: Microservices Just Right
mircodotta
 
Architecting Large Enterprise Projects @DevConf.CZ
Architecting Large Enterprise Projects @DevConf.CZArchitecting Large Enterprise Projects @DevConf.CZ
Architecting Large Enterprise Projects @DevConf.CZ
Markus Eisele
 

Viewers also liked (20)

CQRS and Event Sourcing for Java Developers
CQRS and Event Sourcing for Java DevelopersCQRS and Event Sourcing for Java Developers
CQRS and Event Sourcing for Java Developers
 
Hyperscale Computing, Enterprise Agility with Mesosphere
Hyperscale Computing, Enterprise Agility with MesosphereHyperscale Computing, Enterprise Agility with Mesosphere
Hyperscale Computing, Enterprise Agility with Mesosphere
 
Nine Neins - where Java EE will never take you
Nine Neins - where Java EE will never take youNine Neins - where Java EE will never take you
Nine Neins - where Java EE will never take you
 
10 Golden Social Media Rules for Developer Relations Manager
10 Golden Social Media Rules for Developer Relations Manager10 Golden Social Media Rules for Developer Relations Manager
10 Golden Social Media Rules for Developer Relations Manager
 
Lightweight Webservices with Sinatra and RestClient
Lightweight Webservices with Sinatra and RestClientLightweight Webservices with Sinatra and RestClient
Lightweight Webservices with Sinatra and RestClient
 
DevNexus 2011
DevNexus 2011DevNexus 2011
DevNexus 2011
 
Microservice Come in Systems
Microservice Come in SystemsMicroservice Come in Systems
Microservice Come in Systems
 
Wild Flies and a Camel Java EE Integration Stories
Wild Flies and a Camel Java EE Integration StoriesWild Flies and a Camel Java EE Integration Stories
Wild Flies and a Camel Java EE Integration Stories
 
Wild Flies and a Camel - Chicago JUG - 03/15
Wild Flies and a Camel - Chicago JUG - 03/15Wild Flies and a Camel - Chicago JUG - 03/15
Wild Flies and a Camel - Chicago JUG - 03/15
 
Build Android OS on OSX
Build Android OS on OSXBuild Android OS on OSX
Build Android OS on OSX
 
Stream Processing in the Cloud With Data Microservices
Stream Processing in the Cloud With Data MicroservicesStream Processing in the Cloud With Data Microservices
Stream Processing in the Cloud With Data Microservices
 
MessageBus vs MessageBus
MessageBus vs MessageBusMessageBus vs MessageBus
MessageBus vs MessageBus
 
Top Mistakes When Writing Reactive Applications - Scala by the Bay 2016
Top Mistakes When Writing Reactive Applications - Scala by the Bay 2016Top Mistakes When Writing Reactive Applications - Scala by the Bay 2016
Top Mistakes When Writing Reactive Applications - Scala by the Bay 2016
 
OpenShift for Java EE Developers
OpenShift for Java EE DevelopersOpenShift for Java EE Developers
OpenShift for Java EE Developers
 
THEFT-PROOF JAVA EE - SECURING YOUR JAVA EE APPLICATIONS
 THEFT-PROOF JAVA EE - SECURING YOUR JAVA EE APPLICATIONS THEFT-PROOF JAVA EE - SECURING YOUR JAVA EE APPLICATIONS
THEFT-PROOF JAVA EE - SECURING YOUR JAVA EE APPLICATIONS
 
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at DevNexus 2017
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at DevNexus 2017DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at DevNexus 2017
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at DevNexus 2017
 
Community and Java EE @ DevConf.CZ
Community and Java EE @ DevConf.CZCommunity and Java EE @ DevConf.CZ
Community and Java EE @ DevConf.CZ
 
2017 lvl1 api presentation march2017
2017 lvl1 api presentation march20172017 lvl1 api presentation march2017
2017 lvl1 api presentation march2017
 
Lightbend Lagom: Microservices Just Right
Lightbend Lagom: Microservices Just RightLightbend Lagom: Microservices Just Right
Lightbend Lagom: Microservices Just Right
 
Architecting Large Enterprise Projects @DevConf.CZ
Architecting Large Enterprise Projects @DevConf.CZArchitecting Large Enterprise Projects @DevConf.CZ
Architecting Large Enterprise Projects @DevConf.CZ
 

Similar to Stay productive while slicing up the monolith

Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolith
Markus Eisele
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolith
Markus Eisele
 
Docker for the enterprise
Docker for the enterpriseDocker for the enterprise
Docker for the enterprise
Bert Poller
 
Rami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with DockerRami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with Docker
Web à Québec
 
Breaking the Monolith Road to Containers
Breaking the Monolith Road to ContainersBreaking the Monolith Road to Containers
Breaking the Monolith Road to Containers
Amazon Web Services
 
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
Lightbend
 
Building a PaaS Platform like Bluemix on OpenStack
Building a PaaS Platform like Bluemix on OpenStackBuilding a PaaS Platform like Bluemix on OpenStack
Building a PaaS Platform like Bluemix on OpenStack
Animesh Singh
 
ThatConference 2016 - Highly Available Node.js
ThatConference 2016 - Highly Available Node.jsThatConference 2016 - Highly Available Node.js
ThatConference 2016 - Highly Available Node.js
Brad Williams
 
Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015
WaveMaker, Inc.
 
The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)
Simon Haslam
 
20191201 kubernetes managed weblogic revival - part 1
20191201 kubernetes managed weblogic revival - part 120191201 kubernetes managed weblogic revival - part 1
20191201 kubernetes managed weblogic revival - part 1
makker_nl
 
WSO2 Application Server - 5.0.0
WSO2 Application Server - 5.0.0WSO2 Application Server - 5.0.0
WSO2 Application Server - 5.0.0
WSO2
 
Microsoft Azure & Hybrid Cloud
Microsoft Azure & Hybrid CloudMicrosoft Azure & Hybrid Cloud
Microsoft Azure & Hybrid Cloud
Aidan Finn
 
Getting Started with MariaDB with Docker
Getting Started with MariaDB with DockerGetting Started with MariaDB with Docker
Getting Started with MariaDB with Docker
MariaDB plc
 
Azure Serverless Toolbox
Azure Serverless ToolboxAzure Serverless Toolbox
Azure Serverless Toolbox
Johan Eriksson
 
56k.cloud training
56k.cloud training56k.cloud training
56k.cloud training
Brian Christner
 
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
Amazon Web Services
 
Cloud Foundry: Hands-on Deployment Workshop
Cloud Foundry: Hands-on Deployment WorkshopCloud Foundry: Hands-on Deployment Workshop
Cloud Foundry: Hands-on Deployment Workshop
Manuel Garcia
 
Lessons From Deploying Redis On Azure For Enterprise Customers: Carl Dacosta,...
Lessons From Deploying Redis On Azure For Enterprise Customers: Carl Dacosta,...Lessons From Deploying Redis On Azure For Enterprise Customers: Carl Dacosta,...
Lessons From Deploying Redis On Azure For Enterprise Customers: Carl Dacosta,...
Redis Labs
 
DockerCon 2016 - Structured Container Delivery
DockerCon 2016 - Structured Container DeliveryDockerCon 2016 - Structured Container Delivery
DockerCon 2016 - Structured Container Delivery
Oscar Renalias
 

Similar to Stay productive while slicing up the monolith (20)

Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolith
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolith
 
Docker for the enterprise
Docker for the enterpriseDocker for the enterprise
Docker for the enterprise
 
Rami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with DockerRami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with Docker
 
Breaking the Monolith Road to Containers
Breaking the Monolith Road to ContainersBreaking the Monolith Road to Containers
Breaking the Monolith Road to Containers
 
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
 
Building a PaaS Platform like Bluemix on OpenStack
Building a PaaS Platform like Bluemix on OpenStackBuilding a PaaS Platform like Bluemix on OpenStack
Building a PaaS Platform like Bluemix on OpenStack
 
ThatConference 2016 - Highly Available Node.js
ThatConference 2016 - Highly Available Node.jsThatConference 2016 - Highly Available Node.js
ThatConference 2016 - Highly Available Node.js
 
Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015
 
The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)
 
20191201 kubernetes managed weblogic revival - part 1
20191201 kubernetes managed weblogic revival - part 120191201 kubernetes managed weblogic revival - part 1
20191201 kubernetes managed weblogic revival - part 1
 
WSO2 Application Server - 5.0.0
WSO2 Application Server - 5.0.0WSO2 Application Server - 5.0.0
WSO2 Application Server - 5.0.0
 
Microsoft Azure & Hybrid Cloud
Microsoft Azure & Hybrid CloudMicrosoft Azure & Hybrid Cloud
Microsoft Azure & Hybrid Cloud
 
Getting Started with MariaDB with Docker
Getting Started with MariaDB with DockerGetting Started with MariaDB with Docker
Getting Started with MariaDB with Docker
 
Azure Serverless Toolbox
Azure Serverless ToolboxAzure Serverless Toolbox
Azure Serverless Toolbox
 
56k.cloud training
56k.cloud training56k.cloud training
56k.cloud training
 
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
 
Cloud Foundry: Hands-on Deployment Workshop
Cloud Foundry: Hands-on Deployment WorkshopCloud Foundry: Hands-on Deployment Workshop
Cloud Foundry: Hands-on Deployment Workshop
 
Lessons From Deploying Redis On Azure For Enterprise Customers: Carl Dacosta,...
Lessons From Deploying Redis On Azure For Enterprise Customers: Carl Dacosta,...Lessons From Deploying Redis On Azure For Enterprise Customers: Carl Dacosta,...
Lessons From Deploying Redis On Azure For Enterprise Customers: Carl Dacosta,...
 
DockerCon 2016 - Structured Container Delivery
DockerCon 2016 - Structured Container DeliveryDockerCon 2016 - Structured Container Delivery
DockerCon 2016 - Structured Container Delivery
 

More from Markus Eisele

Sustainable Software Architecture - Open Tour DACH '22
Sustainable Software Architecture - Open Tour DACH '22Sustainable Software Architecture - Open Tour DACH '22
Sustainable Software Architecture - Open Tour DACH '22
Markus Eisele
 
Going from java message service (jms) to eda
Going from java message service (jms) to eda Going from java message service (jms) to eda
Going from java message service (jms) to eda
Markus Eisele
 
Let's be real. Quarkus in the wild.
Let's be real. Quarkus in the wild.Let's be real. Quarkus in the wild.
Let's be real. Quarkus in the wild.
Markus Eisele
 
What happens when unicorns drink coffee
What happens when unicorns drink coffeeWhat happens when unicorns drink coffee
What happens when unicorns drink coffee
Markus Eisele
 
Stateful on Stateless - The Future of Applications in the Cloud
Stateful on Stateless - The Future of Applications in the CloudStateful on Stateless - The Future of Applications in the Cloud
Stateful on Stateless - The Future of Applications in the Cloud
Markus Eisele
 
Java in the age of containers - JUG Frankfurt/M
Java in the age of containers - JUG Frankfurt/MJava in the age of containers - JUG Frankfurt/M
Java in the age of containers - JUG Frankfurt/M
Markus Eisele
 
Java in the Age of Containers and Serverless
Java in the Age of Containers and ServerlessJava in the Age of Containers and Serverless
Java in the Age of Containers and Serverless
Markus Eisele
 
Migrating from Java EE to cloud-native Reactive systems
Migrating from Java EE to cloud-native Reactive systemsMigrating from Java EE to cloud-native Reactive systems
Migrating from Java EE to cloud-native Reactive systems
Markus Eisele
 
Streaming to a new Jakarta EE / JOTB19
Streaming to a new Jakarta EE / JOTB19Streaming to a new Jakarta EE / JOTB19
Streaming to a new Jakarta EE / JOTB19
Markus Eisele
 
Cloud wars - A LavaOne discussion in seven slides
Cloud wars - A LavaOne discussion in seven slidesCloud wars - A LavaOne discussion in seven slides
Cloud wars - A LavaOne discussion in seven slides
Markus Eisele
 
Streaming to a new Jakarta EE
Streaming to a new Jakarta EEStreaming to a new Jakarta EE
Streaming to a new Jakarta EE
Markus Eisele
 
Reactive Integrations - Caveats and bumps in the road explained
Reactive Integrations - Caveats and bumps in the road explained  Reactive Integrations - Caveats and bumps in the road explained
Reactive Integrations - Caveats and bumps in the road explained
Markus Eisele
 
Java EE microservices architecture - evolving the monolith
Java EE microservices architecture - evolving the monolithJava EE microservices architecture - evolving the monolith
Java EE microservices architecture - evolving the monolith
Markus Eisele
 

More from Markus Eisele (13)

Sustainable Software Architecture - Open Tour DACH '22
Sustainable Software Architecture - Open Tour DACH '22Sustainable Software Architecture - Open Tour DACH '22
Sustainable Software Architecture - Open Tour DACH '22
 
Going from java message service (jms) to eda
Going from java message service (jms) to eda Going from java message service (jms) to eda
Going from java message service (jms) to eda
 
Let's be real. Quarkus in the wild.
Let's be real. Quarkus in the wild.Let's be real. Quarkus in the wild.
Let's be real. Quarkus in the wild.
 
What happens when unicorns drink coffee
What happens when unicorns drink coffeeWhat happens when unicorns drink coffee
What happens when unicorns drink coffee
 
Stateful on Stateless - The Future of Applications in the Cloud
Stateful on Stateless - The Future of Applications in the CloudStateful on Stateless - The Future of Applications in the Cloud
Stateful on Stateless - The Future of Applications in the Cloud
 
Java in the age of containers - JUG Frankfurt/M
Java in the age of containers - JUG Frankfurt/MJava in the age of containers - JUG Frankfurt/M
Java in the age of containers - JUG Frankfurt/M
 
Java in the Age of Containers and Serverless
Java in the Age of Containers and ServerlessJava in the Age of Containers and Serverless
Java in the Age of Containers and Serverless
 
Migrating from Java EE to cloud-native Reactive systems
Migrating from Java EE to cloud-native Reactive systemsMigrating from Java EE to cloud-native Reactive systems
Migrating from Java EE to cloud-native Reactive systems
 
Streaming to a new Jakarta EE / JOTB19
Streaming to a new Jakarta EE / JOTB19Streaming to a new Jakarta EE / JOTB19
Streaming to a new Jakarta EE / JOTB19
 
Cloud wars - A LavaOne discussion in seven slides
Cloud wars - A LavaOne discussion in seven slidesCloud wars - A LavaOne discussion in seven slides
Cloud wars - A LavaOne discussion in seven slides
 
Streaming to a new Jakarta EE
Streaming to a new Jakarta EEStreaming to a new Jakarta EE
Streaming to a new Jakarta EE
 
Reactive Integrations - Caveats and bumps in the road explained
Reactive Integrations - Caveats and bumps in the road explained  Reactive Integrations - Caveats and bumps in the road explained
Reactive Integrations - Caveats and bumps in the road explained
 
Java EE microservices architecture - evolving the monolith
Java EE microservices architecture - evolving the monolithJava EE microservices architecture - evolving the monolith
Java EE microservices architecture - evolving the monolith
 

Recently uploaded

Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
shanthidl1
 
20240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 202420240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 2024
Matthew Sinclair
 
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM
Vijayananda Mohire
 
DealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 editionDealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 edition
Yevgen Sysoyev
 
20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf
Sally Laouacheria
 
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
Neo4j
 
What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024
Stephanie Beckett
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
Lidia A.
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
Emerging Tech
 
The Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive ComputingThe Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive Computing
Larry Smarr
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
Kief Morris
 
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Bert Blevins
 
Measuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at TwitterMeasuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at Twitter
ScyllaDB
 
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
RaminGhanbari2
 
Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...
BookNet Canada
 
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Erasmo Purificato
 
How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx
SynapseIndia
 
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALLBLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
Liveplex
 
Recent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS InfrastructureRecent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS Infrastructure
KAMAL CHOUDHARY
 

Recently uploaded (20)

Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
 
20240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 202420240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 2024
 
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM
 
DealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 editionDealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 edition
 
20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf
 
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
 
What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
 
The Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive ComputingThe Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive Computing
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
 
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
 
Measuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at TwitterMeasuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at Twitter
 
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
 
Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...
 
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
 
How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx
 
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALLBLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
 
Recent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS InfrastructureRecent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS Infrastructure
 

Stay productive while slicing up the monolith

  • 1. Stay Productive While Slicing Up the Monolith Markus Eisele
  • 6. LL: Building and Scaling Monoliths • Monolithic application – everything is package into a single .ear • Reuse primarily by sharing .jars • A “big” push to production once or twice a year • Single database schema for the entire application • >= 500k loc • >= Heavyweight Infrastructure • Thousands of Testcases • Barely New Testcases • >= 20 Team Member • The single .ear requiring a multi-month test cycle / • Huge bug and feature databases • User Acceptance Undefined • Technical Design Approach • Barely Business Components or Domains • Requiring multiple team involvement & significant oversight • Technical Dept • Outdated Runtimes (Licenses, Complex updates) • Grown applications
  • 8. New requirements • Rather than acting on data at rest, modern software increasingly operates on data in near real-time. • 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
  • 9. > Traditional application architectures and platforms are obsolete. -- Gartner
  • 13. REQ: Building and Scaling Microservices • Lightweight runtime • Cross – Service Security • Transaction Management • Service Scaling • Load Balancing • SLA’s • Flexible Deployment • Configuration • Service Discovery • Service Versions • Monitoring • Governance • Asynchronous communication • Non-blocking I/O • Streaming Data • Polyglot Services • Modularity (Service definition) • High performance persistence (CQRS) • Event handling / messaging (ES) • Eventual consistency • API Management • Health check and recovery
  • 14. “Microservices” is a lousy term • Size is irrelevant We want flexible systems and organizations that can adapt to their complex environments, make changes without rigid dependencies and coordination, can learn, experiment, and exhibit emergent behavior.
  • 15. We need to build systems for flexibility and resiliency, not just efficiency and robustness.
  • 16. Software Design Outer Architecture Methodology and Organization Distributed Systems Datacenter Operating System
  • 17. Software Design Architecture Principles • Single Responsible Principle • Service Oriented Architecture – Encapsulation – Separation of Concern – Loose Coupling • Hexagonal Architecture Design Patterns • Domain-driven Design • Bounded Contexts • Event Sourcing • CQRS • Eventual Consistency • Context Maps
  • 18. Design Best Practices • Design for Automation • Designed for failure • Service load balancing and automatic scaling • Design for Data Separation • Design for Integrity • Design for Performance
  • 19. Strategies For Decomposing Verb or Use Case e.g. Checkout UI Noun e.g. Catalog product service Single Responsible Principle e.g. Unix utilities
  • 20. • Reactive Microservices Framework for the JVM • Focused on right sized services • Asynchronous I/O and communication as first class priorities • Highly productive development environment • Takes you all the way to production What is Lagom?
  • 21. • Use bounded contexts as boundaries for services! (Domain Driven Design) • The event log is the book of record! (Event Sourcing) • Separate the read and write sides! (CQRS) • Microservices, too, need to be elastic and resilient! (Reactive) • Developer experience matters! (The Lagom development setup) Highly opinionated!
  • 22. • Service API • Persistence API • Development environment • Production environment The parts
  • 23. • 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
  • 28. $ cd my-first-system $ mvn lagom:runAll ... [info] Starting embedded Cassandra server .......... [info] Cassandra server running at 127.0.0.1:4000 [info] Service locator is running at http://localhost:8000 [info] Service gateway is running at http://localhost:9000 .......... [info] Service helloworld-impl listening for HTTP on 0:0:0:0:0:0:0:0:24266 [info] Service hellostream-impl listening for HTTP on 0:0:0:0:0:0:0:0:26230 (Services started, press enter to stop and go back to the console...)
  • 34. Now that we have our bundles, how do we get into production?
  • 35. • Lagom doesn’t prescribe any particular production environment, however out of the box support is provided for Lightbend ConductR. • Zookeper based version: https://github.com/jboner/lagom-service-locator- zookeeper • Consul based version: https://github.com/jboner/lagom-service-locator-consul Out of the box support for ConductR but..
  • 36. >sbt bundle:dist ... [info] Your package is ready in /Users/myfear/lagom-cargotracker/front- end/target/universal/front-end-1.0- SNAPSHOT.zip Create Service bundles via sbt
  • 37. • Creating a bundle configuration file, bundle.conf • Creating a start script • Creating a Maven assembly plugin descriptor to create the bundle zip • Binding the Maven assembly plugin and Lagom renameConductRBundle goals to your projects lifecycle Create Service Bundles with Maven http://www.lagomframework.com/documentation/1.3.x/java/ConductR.html
  • 40. Next Steps! Download and try Lagom! Project Site: http://www.lightbend.com/lagom GitHub Repo: https://github.com/lagom Documentation: http://www.lagomframework.com/documentation/1.3.x/java/Home.html Example: https://github.com/typesafehub/activator-lagom-java
  • 41. 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
  • 42. 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