SlideShare a Scribd company logo
© Copyright 2018 Pivotal Software, Inc. All rights Reserved. Version 1.0
Quickstart your Event Driven Architecture
Ben Wilcock, Pivotal @benbravo73
Steven van Beelen, AxonIQ @smcvbeelen
&
■ A Reference Architecture
■ Open-source
■ CQRS & Event Sourcing
■ Spring Boot
■ Axon Framework
■ PCF (Pivotal Web Services)
■ URL axontrader.cfapps.io
Introducing Axon Trader
Spring Boot
Java’s most popular microservices framework
● Is there anyone who hasn’t heard of SpringBoot?
● Fast, easy to build stand-alone Spring applications
● Opinionated ‘starter’ dependencies that autoconfigure
● ‘starter-web’ is great for RESTful microservices
● Embeds Tomcat, Jetty or Undertow
● Production-ready features (metrics, health, config)
● Easy to get started with guides & initializer
● https://spring.io/projects/spring-boot
Axon
Solving non-functional app complexity in Message-Driven systems
● Open Source (Apache 2 License) Java framework
● First-class support for CQRS, DDD and EDA concepts
○ Aggregates & Aggregate Roots
○ Commands, Queries and Events
○ Event Sourcing
○ Sagas
● Helps focusing on the business functionality in your application
● https://axoniq.io/
PCF
The premier platform for cloud-native development
● Focussed on developer productivity
● The fastest path to production
● Fully polyglot with support for Java, .Net, NodeJS, Python, etc.
● Marketplace services - DBs, MQs, APMs, etc.
● Highly automatable & CI / CD friendly
● Deploy code to production 000’s of times a month!
● Available online via Pivotal Web Services (PWS) at run.pivotal.io
C(ommand) Q(uery) R(esponsibility) S(egregation)
Domain
logic
Projections
Client
Events
Commands Queries
CQRS, what is it?
Wallet
Id: 123
Owner: Steven
Balance: €1000
Event Sourcing, what is it?
C.R.U.D. Event Sourcing
WalletCreatedEvent:
Id: 123, Owner: Steven
> Balance: €0
CashDepositedEvent: €1500
> Balance: €1500
CashWithdrawnEvent: €500
> Balance: €1000
CashWithdrawnEvent: €500
> Balance: €500
CashDepositedEvent: €500
> Balance: €1000Balance is persisted, but how we got here isn’t clear.
Great for projections and views, but somewhat ‘lossy’.
Example: Virtual Wallet
"Event" and “Message" are not the same thing!
PublicAPI
Message Driven APIs: what do they consist of?
Commands
Route to single handler
Use consistent hashing
Return a result
Events
Distribute to all event handlers
Consumers express ordering req’s
Return no result
Can be persisted
Can be a ‘source’ of agg. state
Can be used to build projections
Queries
Route with load balancing
Sometimes scatter/gather
Return a result
Virtual Wallet: let’s code it!
Demo: Commissioning MySQL Database with PCF...
No DBA’s. No IT tickets. Just two simple commands:
➢ “cf create-service”
○ Provisions a ‘tablespace’ with inline with the selected plan
○ Fully automated - no manual steps
➢ “cf bind-service”
○ Creates a dedicated user for the application with credentials
○ Adds the connection string and credentials into the applications
environment variables (picked up automatically by SpringBoot)
No servers. No containers. No ssh. Just one simple command:
➢ “cf push”
○ Uploads your code to Cloud Foundry
○ Layers required runtimes (e.g. JVM) onto a hardened container
○ Sets up a route (URL) for your app
○ Creates a load balancing entry for each instance
○ Sets up SSL termination and mTLS
○ Creates health monitoring & logging subsystems
○ Binds all required backing services (database, messaging etc.)
○ Schedules your app container to start
○ Starts your app with the desired number of instances (scale)
○ Automatically restarts your app should it ever stop...
Demo: Pushing code to production with PCF...
But how does this help us..?
Pivotal Services MarketplacePivotal Cloud Foundry (PAS)
CPI (Multi-cloud ‘Cloud Provider API’)
Application Code & Frameworks Buildpacks | Spring Boot & Java | .NET | NodeJS | Python | Go | Staticfile | PHP | Ruby
cf push | cf create-service | cf bind-service
vSphere
Azure &
Azure StackGoogle CloudAWSOpenstack
Marketplace for Pivotal and Partner Products
Public Cloud
Services
Customer
Managed
Services
OpenServiceBrokerAPI
MySQL Relational DB
Spring Cloud Services
(Registry, Config, etc.)
Rabbit MQ Messaging
Redis Key Value Store
Trader UI
Home
Dashboard
Order Books
Users
Images
Layout
Application starts life as
a monolith which is easier
to design and build
Trader App
Companies
Users
Portfolios
Order Books
Evolutionary
Architecture
Pivotal Services MarketplacePivotal Cloud Foundry (PAS)
CPI (Multi-cloud ‘Cloud Provider API’)
Application Code & Frameworks Buildpacks | Spring Boot & Java | .NET | NodeJS | Python | Go | Staticfile | PHP | Ruby
cf push | cf create-service | cf bind-service
vSphere
Azure &
Azure StackGoogle CloudAWSOpenstack
Marketplace for Pivotal and Partner Products
Public Cloud
Services
Customer
Managed
Services
OpenServiceBrokerAPI
MySQL Relational DB
Spring Cloud Services
(Registry, Config, etc.)
Rabbit MQ Messaging
Redis Key Value Store
Trading Engine
Order Books
Portfolios
Then we strangle the monolithusing location transparency andadding services
Trader UI
Home
Dashboard
Order Books
Users
Images
Layout
Trader App
Companies
Users
Pivotal Services MarketplacePivotal Cloud Foundry (PAS)
CPI (Multi-cloud ‘Cloud Provider API’)
Application Code & Frameworks Buildpacks | Spring Boot & Java | .NET | NodeJS | Python | Go | Staticfile | PHP | Ruby
cf push | cf create-service | cf bind-service
vSphere
Azure &
Azure StackGoogle CloudAWSOpenstack
Marketplace for Pivotal and Partner Products
Public Cloud
Services
Customer
Managed
Services
OpenServiceBrokerAPI
MySQL Relational DB
Spring Cloud Services
(Registry, Config, etc.)
Rabbit MQ Messaging
Redis Key Value Store
Trading EngineTrader App
Companies
Users Order Books
Portfolios
Trading Engine iN
Order Books
Portfolios
Finally, separating ourapplication into microservicesmakes it easier to maintainand scale
Trader UI
Home
Dashboard
Order Books
Users
Images
Layout
What’s next?
Coming Soon…
Axon Server in the Pivotal Service Marketplace
We’re working on getting Axon Server into the PCF marketplace allowing dedicated
on-demand Event Store, Command, Query and Event routing services
&
$> cf create-service axon-server
Check it out!
Thanks for attending!
Wallet RepoAxon Trader
Ben Wilcock, Pivotal @benbravo73
Steven van Beelen, AxonIQ @smcvbeelen steven@axoniq.io

More Related Content

What's hot

SignalR with ASP.NET MVC 6
SignalR with ASP.NET MVC 6SignalR with ASP.NET MVC 6
SignalR with ASP.NET MVC 6
Tung Nguyen Thanh
 
React.js - and how it changed our thinking about UI
React.js - and how it changed our thinking about UIReact.js - and how it changed our thinking about UI
React.js - and how it changed our thinking about UI
Marcin Grzywaczewski
 
Going Serverless with Iron.io
Going Serverless with Iron.ioGoing Serverless with Iron.io
Going Serverless with Iron.io
Isak Rickyanto
 
Serverless Architecture
Serverless ArchitectureServerless Architecture
Serverless Architecture
Saul Caganoff
 
70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONS
70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONS70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONS
70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONS
DotNetCampus
 
Building a Web Frontend with Microservices and NGINX Plus
Building a Web Frontend with Microservices and NGINX PlusBuilding a Web Frontend with Microservices and NGINX Plus
Building a Web Frontend with Microservices and NGINX Plus
NGINX, Inc.
 
Mini-Training Owin Katana
Mini-Training Owin KatanaMini-Training Owin Katana
Mini-Training Owin Katana
Betclic Everest Group Tech Team
 
Signal r azurepresentation
Signal r azurepresentationSignal r azurepresentation
Signal r azurepresentation
Justin Wendlandt
 
React js Online Training
React js Online TrainingReact js Online Training
React js Online Training
Learntek1
 
R2DBC - Good Enough for Production?
R2DBC - Good Enough for Production?R2DBC - Good Enough for Production?
R2DBC - Good Enough for Production?
Olexandra Dmytrenko
 
Expose BizTalk to the world (ACSUG)
Expose BizTalk to the world (ACSUG)Expose BizTalk to the world (ACSUG)
Expose BizTalk to the world (ACSUG)
Wagner Silveira
 
Kubernetes - training micro-dragons without getting burnt
Kubernetes -  training micro-dragons without getting burntKubernetes -  training micro-dragons without getting burnt
Kubernetes - training micro-dragons without getting burnt
Amir Moghimi
 
Microservices on kubernetes
Microservices on kubernetesMicroservices on kubernetes
Microservices on kubernetes
Chandresh Pancholi
 
Managing your camels in the cloud with CI/CD
Managing your camels in the cloud with CI/CDManaging your camels in the cloud with CI/CD
Managing your camels in the cloud with CI/CD
Christian Posta
 
How to Serve Blockchain Data with AWS Lambda
How to Serve Blockchain Data with AWS LambdaHow to Serve Blockchain Data with AWS Lambda
How to Serve Blockchain Data with AWS Lambda
Very
 
Lagom framework
Lagom frameworkLagom framework
Lagom framework
명주 김
 
Building Microservices with .NET (speaker Anton Vasilenko, Binary Studio)
Building Microservices with .NET (speaker Anton Vasilenko, Binary Studio)Building Microservices with .NET (speaker Anton Vasilenko, Binary Studio)
Building Microservices with .NET (speaker Anton Vasilenko, Binary Studio)
Binary Studio
 
Andreas Nauerz and Michael Behrendt - Event Driven and Serverless Programming...
Andreas Nauerz and Michael Behrendt - Event Driven and Serverless Programming...Andreas Nauerz and Michael Behrendt - Event Driven and Serverless Programming...
Andreas Nauerz and Michael Behrendt - Event Driven and Serverless Programming...
ServerlessConf
 
Hybrid Integration using BizTalk and Azure
Hybrid Integration using BizTalk and AzureHybrid Integration using BizTalk and Azure
Hybrid Integration using BizTalk and Azure
BizTalk360
 
Net core path by Ibon Landa
Net core path by Ibon LandaNet core path by Ibon Landa
Net core path by Ibon Landa
Plain Concepts
 

What's hot (20)

SignalR with ASP.NET MVC 6
SignalR with ASP.NET MVC 6SignalR with ASP.NET MVC 6
SignalR with ASP.NET MVC 6
 
React.js - and how it changed our thinking about UI
React.js - and how it changed our thinking about UIReact.js - and how it changed our thinking about UI
React.js - and how it changed our thinking about UI
 
Going Serverless with Iron.io
Going Serverless with Iron.ioGoing Serverless with Iron.io
Going Serverless with Iron.io
 
Serverless Architecture
Serverless ArchitectureServerless Architecture
Serverless Architecture
 
70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONS
70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONS70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONS
70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONS
 
Building a Web Frontend with Microservices and NGINX Plus
Building a Web Frontend with Microservices and NGINX PlusBuilding a Web Frontend with Microservices and NGINX Plus
Building a Web Frontend with Microservices and NGINX Plus
 
Mini-Training Owin Katana
Mini-Training Owin KatanaMini-Training Owin Katana
Mini-Training Owin Katana
 
Signal r azurepresentation
Signal r azurepresentationSignal r azurepresentation
Signal r azurepresentation
 
React js Online Training
React js Online TrainingReact js Online Training
React js Online Training
 
R2DBC - Good Enough for Production?
R2DBC - Good Enough for Production?R2DBC - Good Enough for Production?
R2DBC - Good Enough for Production?
 
Expose BizTalk to the world (ACSUG)
Expose BizTalk to the world (ACSUG)Expose BizTalk to the world (ACSUG)
Expose BizTalk to the world (ACSUG)
 
Kubernetes - training micro-dragons without getting burnt
Kubernetes -  training micro-dragons without getting burntKubernetes -  training micro-dragons without getting burnt
Kubernetes - training micro-dragons without getting burnt
 
Microservices on kubernetes
Microservices on kubernetesMicroservices on kubernetes
Microservices on kubernetes
 
Managing your camels in the cloud with CI/CD
Managing your camels in the cloud with CI/CDManaging your camels in the cloud with CI/CD
Managing your camels in the cloud with CI/CD
 
How to Serve Blockchain Data with AWS Lambda
How to Serve Blockchain Data with AWS LambdaHow to Serve Blockchain Data with AWS Lambda
How to Serve Blockchain Data with AWS Lambda
 
Lagom framework
Lagom frameworkLagom framework
Lagom framework
 
Building Microservices with .NET (speaker Anton Vasilenko, Binary Studio)
Building Microservices with .NET (speaker Anton Vasilenko, Binary Studio)Building Microservices with .NET (speaker Anton Vasilenko, Binary Studio)
Building Microservices with .NET (speaker Anton Vasilenko, Binary Studio)
 
Andreas Nauerz and Michael Behrendt - Event Driven and Serverless Programming...
Andreas Nauerz and Michael Behrendt - Event Driven and Serverless Programming...Andreas Nauerz and Michael Behrendt - Event Driven and Serverless Programming...
Andreas Nauerz and Michael Behrendt - Event Driven and Serverless Programming...
 
Hybrid Integration using BizTalk and Azure
Hybrid Integration using BizTalk and AzureHybrid Integration using BizTalk and Azure
Hybrid Integration using BizTalk and Azure
 
Net core path by Ibon Landa
Net core path by Ibon LandaNet core path by Ibon Landa
Net core path by Ibon Landa
 

Similar to Devoxx 2018 - Pivotal and AxonIQ - Quickstart your event driven architecture

Eseguire Applicazioni Cloud-Native con Pivotal Cloud Foundry su Google Cloud ...
Eseguire Applicazioni Cloud-Native con Pivotal Cloud Foundry su Google Cloud ...Eseguire Applicazioni Cloud-Native con Pivotal Cloud Foundry su Google Cloud ...
Eseguire Applicazioni Cloud-Native con Pivotal Cloud Foundry su Google Cloud ...
VMware Tanzu
 
Spring Boot & Spring Cloud on Pivotal Application Service
Spring Boot & Spring Cloud on Pivotal Application ServiceSpring Boot & Spring Cloud on Pivotal Application Service
Spring Boot & Spring Cloud on Pivotal Application Service
VMware Tanzu
 
Microservices with kubernetes @190316
Microservices with kubernetes @190316Microservices with kubernetes @190316
Microservices with kubernetes @190316
Jupil Hwang
 
SpringBoot and Spring Cloud Service for MSA
SpringBoot and Spring Cloud Service for MSASpringBoot and Spring Cloud Service for MSA
SpringBoot and Spring Cloud Service for MSA
Oracle Korea
 
Spring Cloud Services with Pivotal Cloud Foundry- Gokhan Goksu
Spring Cloud Services with Pivotal Cloud Foundry- Gokhan GoksuSpring Cloud Services with Pivotal Cloud Foundry- Gokhan Goksu
Spring Cloud Services with Pivotal Cloud Foundry- Gokhan Goksu
VMware Tanzu
 
Pivotal CloudFoundry on Google cloud platform
Pivotal CloudFoundry on Google cloud platformPivotal CloudFoundry on Google cloud platform
Pivotal CloudFoundry on Google cloud platform
Ronak Banka
 
Serverless integration with Knative and Apache Camel on Kubernetes
Serverless integration with Knative and Apache Camel on KubernetesServerless integration with Knative and Apache Camel on Kubernetes
Serverless integration with Knative and Apache Camel on Kubernetes
Claus Ibsen
 
PCF: Platform for a New Era - Kubernetes for the Enterprise - London
PCF: Platform for a New Era - Kubernetes for the Enterprise - LondonPCF: Platform for a New Era - Kubernetes for the Enterprise - London
PCF: Platform for a New Era - Kubernetes for the Enterprise - London
VMware Tanzu
 
StrongLoop Overview
StrongLoop OverviewStrongLoop Overview
StrongLoop Overview
Shubhra Kar
 
Integrating Infrastructure as Code into a Continuous Delivery Pipeline | AWS ...
Integrating Infrastructure as Code into a Continuous Delivery Pipeline | AWS ...Integrating Infrastructure as Code into a Continuous Delivery Pipeline | AWS ...
Integrating Infrastructure as Code into a Continuous Delivery Pipeline | AWS ...
Amazon Web Services
 
Handling Asynchronous Workloads With OpenShift and Iron.io
Handling Asynchronous Workloads With OpenShift and Iron.ioHandling Asynchronous Workloads With OpenShift and Iron.io
Handling Asynchronous Workloads With OpenShift and Iron.io
Ivan Dwyer
 
Resilient Microservices with Spring Cloud
Resilient Microservices with Spring CloudResilient Microservices with Spring Cloud
Resilient Microservices with Spring Cloud
VMware Tanzu
 
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
NETWAYS
 
ServerLess by usama Azure fuctions.pptx
ServerLess by usama Azure fuctions.pptxServerLess by usama Azure fuctions.pptx
ServerLess by usama Azure fuctions.pptx
Usama Wahab Khan Cloud, Data and AI
 
Red Hat and kubernetes: awesome stuff coming your way
Red Hat and kubernetes:  awesome stuff coming your wayRed Hat and kubernetes:  awesome stuff coming your way
Red Hat and kubernetes: awesome stuff coming your way
Johannes Brännström
 
Spring and Pivotal Application Service - SpringOne Tour Dallas
Spring and Pivotal Application Service - SpringOne Tour DallasSpring and Pivotal Application Service - SpringOne Tour Dallas
Spring and Pivotal Application Service - SpringOne Tour Dallas
VMware Tanzu
 
Just Another Word Press Weblog But More Cloudy
Just Another Word Press Weblog   But More CloudyJust Another Word Press Weblog   But More Cloudy
Just Another Word Press Weblog But More Cloudy
Maarten Balliauw
 
Spring Boot & Spring Cloud Apps on Pivotal Application Service - Daniel Lavoie
Spring Boot & Spring Cloud Apps on Pivotal Application Service - Daniel LavoieSpring Boot & Spring Cloud Apps on Pivotal Application Service - Daniel Lavoie
Spring Boot & Spring Cloud Apps on Pivotal Application Service - Daniel Lavoie
VMware Tanzu
 
Running PHP In The Cloud
Running PHP In The CloudRunning PHP In The Cloud
Running PHP In The Cloud
Maarten Balliauw
 
Chef and OpenStack Workshop from ChefConf 2013
Chef and OpenStack Workshop from ChefConf 2013Chef and OpenStack Workshop from ChefConf 2013
Chef and OpenStack Workshop from ChefConf 2013
Matt Ray
 

Similar to Devoxx 2018 - Pivotal and AxonIQ - Quickstart your event driven architecture (20)

Eseguire Applicazioni Cloud-Native con Pivotal Cloud Foundry su Google Cloud ...
Eseguire Applicazioni Cloud-Native con Pivotal Cloud Foundry su Google Cloud ...Eseguire Applicazioni Cloud-Native con Pivotal Cloud Foundry su Google Cloud ...
Eseguire Applicazioni Cloud-Native con Pivotal Cloud Foundry su Google Cloud ...
 
Spring Boot & Spring Cloud on Pivotal Application Service
Spring Boot & Spring Cloud on Pivotal Application ServiceSpring Boot & Spring Cloud on Pivotal Application Service
Spring Boot & Spring Cloud on Pivotal Application Service
 
Microservices with kubernetes @190316
Microservices with kubernetes @190316Microservices with kubernetes @190316
Microservices with kubernetes @190316
 
SpringBoot and Spring Cloud Service for MSA
SpringBoot and Spring Cloud Service for MSASpringBoot and Spring Cloud Service for MSA
SpringBoot and Spring Cloud Service for MSA
 
Spring Cloud Services with Pivotal Cloud Foundry- Gokhan Goksu
Spring Cloud Services with Pivotal Cloud Foundry- Gokhan GoksuSpring Cloud Services with Pivotal Cloud Foundry- Gokhan Goksu
Spring Cloud Services with Pivotal Cloud Foundry- Gokhan Goksu
 
Pivotal CloudFoundry on Google cloud platform
Pivotal CloudFoundry on Google cloud platformPivotal CloudFoundry on Google cloud platform
Pivotal CloudFoundry on Google cloud platform
 
Serverless integration with Knative and Apache Camel on Kubernetes
Serverless integration with Knative and Apache Camel on KubernetesServerless integration with Knative and Apache Camel on Kubernetes
Serverless integration with Knative and Apache Camel on Kubernetes
 
PCF: Platform for a New Era - Kubernetes for the Enterprise - London
PCF: Platform for a New Era - Kubernetes for the Enterprise - LondonPCF: Platform for a New Era - Kubernetes for the Enterprise - London
PCF: Platform for a New Era - Kubernetes for the Enterprise - London
 
StrongLoop Overview
StrongLoop OverviewStrongLoop Overview
StrongLoop Overview
 
Integrating Infrastructure as Code into a Continuous Delivery Pipeline | AWS ...
Integrating Infrastructure as Code into a Continuous Delivery Pipeline | AWS ...Integrating Infrastructure as Code into a Continuous Delivery Pipeline | AWS ...
Integrating Infrastructure as Code into a Continuous Delivery Pipeline | AWS ...
 
Handling Asynchronous Workloads With OpenShift and Iron.io
Handling Asynchronous Workloads With OpenShift and Iron.ioHandling Asynchronous Workloads With OpenShift and Iron.io
Handling Asynchronous Workloads With OpenShift and Iron.io
 
Resilient Microservices with Spring Cloud
Resilient Microservices with Spring CloudResilient Microservices with Spring Cloud
Resilient Microservices with Spring Cloud
 
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
 
ServerLess by usama Azure fuctions.pptx
ServerLess by usama Azure fuctions.pptxServerLess by usama Azure fuctions.pptx
ServerLess by usama Azure fuctions.pptx
 
Red Hat and kubernetes: awesome stuff coming your way
Red Hat and kubernetes:  awesome stuff coming your wayRed Hat and kubernetes:  awesome stuff coming your way
Red Hat and kubernetes: awesome stuff coming your way
 
Spring and Pivotal Application Service - SpringOne Tour Dallas
Spring and Pivotal Application Service - SpringOne Tour DallasSpring and Pivotal Application Service - SpringOne Tour Dallas
Spring and Pivotal Application Service - SpringOne Tour Dallas
 
Just Another Word Press Weblog But More Cloudy
Just Another Word Press Weblog   But More CloudyJust Another Word Press Weblog   But More Cloudy
Just Another Word Press Weblog But More Cloudy
 
Spring Boot & Spring Cloud Apps on Pivotal Application Service - Daniel Lavoie
Spring Boot & Spring Cloud Apps on Pivotal Application Service - Daniel LavoieSpring Boot & Spring Cloud Apps on Pivotal Application Service - Daniel Lavoie
Spring Boot & Spring Cloud Apps on Pivotal Application Service - Daniel Lavoie
 
Running PHP In The Cloud
Running PHP In The CloudRunning PHP In The Cloud
Running PHP In The Cloud
 
Chef and OpenStack Workshop from ChefConf 2013
Chef and OpenStack Workshop from ChefConf 2013Chef and OpenStack Workshop from ChefConf 2013
Chef and OpenStack Workshop from ChefConf 2013
 

Recently uploaded

Artificial Intelligence, Data and Competition – LIM – June 2024 OECD discussion
Artificial Intelligence, Data and Competition – LIM – June 2024 OECD discussionArtificial Intelligence, Data and Competition – LIM – June 2024 OECD discussion
Artificial Intelligence, Data and Competition – LIM – June 2024 OECD discussion
OECD Directorate for Financial and Enterprise Affairs
 
Pro-competitive Industrial Policy – OECD – June 2024 OECD discussion
Pro-competitive Industrial Policy – OECD – June 2024 OECD discussionPro-competitive Industrial Policy – OECD – June 2024 OECD discussion
Pro-competitive Industrial Policy – OECD – June 2024 OECD discussion
OECD Directorate for Financial and Enterprise Affairs
 
The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...
The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...
The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...
OECD Directorate for Financial and Enterprise Affairs
 
The Intersection between Competition and Data Privacy – COLANGELO – June 2024...
The Intersection between Competition and Data Privacy – COLANGELO – June 2024...The Intersection between Competition and Data Privacy – COLANGELO – June 2024...
The Intersection between Competition and Data Privacy – COLANGELO – June 2024...
OECD Directorate for Financial and Enterprise Affairs
 
怎么办理(lincoln学位证书)英国林肯大学毕业证文凭学位证书原版一模一样
怎么办理(lincoln学位证书)英国林肯大学毕业证文凭学位证书原版一模一样怎么办理(lincoln学位证书)英国林肯大学毕业证文凭学位证书原版一模一样
怎么办理(lincoln学位证书)英国林肯大学毕业证文凭学位证书原版一模一样
kekzed
 
ServiceNow CIS-ITSM Exam Dumps & Questions [2024]
ServiceNow CIS-ITSM Exam Dumps & Questions [2024]ServiceNow CIS-ITSM Exam Dumps & Questions [2024]
ServiceNow CIS-ITSM Exam Dumps & Questions [2024]
SkillCertProExams
 
The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...
The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...
The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...
OECD Directorate for Financial and Enterprise Affairs
 
BRIC_2024_2024-06-06-11:30-haunschild_archival_version.pdf
BRIC_2024_2024-06-06-11:30-haunschild_archival_version.pdfBRIC_2024_2024-06-06-11:30-haunschild_archival_version.pdf
BRIC_2024_2024-06-06-11:30-haunschild_archival_version.pdf
Robin Haunschild
 
Competition and Regulation in Professions and Occupations – ROBSON – June 202...
Competition and Regulation in Professions and Occupations – ROBSON – June 202...Competition and Regulation in Professions and Occupations – ROBSON – June 202...
Competition and Regulation in Professions and Occupations – ROBSON – June 202...
OECD Directorate for Financial and Enterprise Affairs
 
The Intersection between Competition and Data Privacy – CAPEL – June 2024 OEC...
The Intersection between Competition and Data Privacy – CAPEL – June 2024 OEC...The Intersection between Competition and Data Privacy – CAPEL – June 2024 OEC...
The Intersection between Competition and Data Privacy – CAPEL – June 2024 OEC...
OECD Directorate for Financial and Enterprise Affairs
 
XP 2024 presentation: A New Look to Leadership
XP 2024 presentation: A New Look to LeadershipXP 2024 presentation: A New Look to Leadership
XP 2024 presentation: A New Look to Leadership
samililja
 
nationalismineurope-230420140400-1c53f60e.pptx
nationalismineurope-230420140400-1c53f60e.pptxnationalismineurope-230420140400-1c53f60e.pptx
nationalismineurope-230420140400-1c53f60e.pptx
silki0908
 
Why Psychological Safety Matters for Software Teams - ACE 2024 - Ben Linders.pdf
Why Psychological Safety Matters for Software Teams - ACE 2024 - Ben Linders.pdfWhy Psychological Safety Matters for Software Teams - ACE 2024 - Ben Linders.pdf
Why Psychological Safety Matters for Software Teams - ACE 2024 - Ben Linders.pdf
Ben Linders
 
原版制作贝德福特大学毕业证(bedfordhire毕业证)硕士文凭原版一模一样
原版制作贝德福特大学毕业证(bedfordhire毕业证)硕士文凭原版一模一样原版制作贝德福特大学毕业证(bedfordhire毕业证)硕士文凭原版一模一样
原版制作贝德福特大学毕业证(bedfordhire毕业证)硕士文凭原版一模一样
gpww3sf4
 
Carrer goals.pptx and their importance in real life
Carrer goals.pptx  and their importance in real lifeCarrer goals.pptx  and their importance in real life
Carrer goals.pptx and their importance in real life
artemacademy2
 
Pro-competitive Industrial Policy – LANE – June 2024 OECD discussion
Pro-competitive Industrial Policy – LANE – June 2024 OECD discussionPro-competitive Industrial Policy – LANE – June 2024 OECD discussion
Pro-competitive Industrial Policy – LANE – June 2024 OECD discussion
OECD Directorate for Financial and Enterprise Affairs
 
Artificial Intelligence, Data and Competition – OECD – June 2024 OECD discussion
Artificial Intelligence, Data and Competition – OECD – June 2024 OECD discussionArtificial Intelligence, Data and Competition – OECD – June 2024 OECD discussion
Artificial Intelligence, Data and Competition – OECD – June 2024 OECD discussion
OECD Directorate for Financial and Enterprise Affairs
 
Proposal: The Ark Project and The BEEP Inc
Proposal: The Ark Project and The BEEP IncProposal: The Ark Project and The BEEP Inc
Proposal: The Ark Project and The BEEP Inc
Raheem Muhammad
 
IEEE CIS Webinar Sustainable futures.pdf
IEEE CIS Webinar Sustainable futures.pdfIEEE CIS Webinar Sustainable futures.pdf
IEEE CIS Webinar Sustainable futures.pdf
Claudio Gallicchio
 
Disaster Management project for holidays homework and other uses
Disaster Management project for holidays homework and other usesDisaster Management project for holidays homework and other uses
Disaster Management project for holidays homework and other uses
RIDHIMAGARG21
 

Recently uploaded (20)

Artificial Intelligence, Data and Competition – LIM – June 2024 OECD discussion
Artificial Intelligence, Data and Competition – LIM – June 2024 OECD discussionArtificial Intelligence, Data and Competition – LIM – June 2024 OECD discussion
Artificial Intelligence, Data and Competition – LIM – June 2024 OECD discussion
 
Pro-competitive Industrial Policy – OECD – June 2024 OECD discussion
Pro-competitive Industrial Policy – OECD – June 2024 OECD discussionPro-competitive Industrial Policy – OECD – June 2024 OECD discussion
Pro-competitive Industrial Policy – OECD – June 2024 OECD discussion
 
The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...
The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...
The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...
 
The Intersection between Competition and Data Privacy – COLANGELO – June 2024...
The Intersection between Competition and Data Privacy – COLANGELO – June 2024...The Intersection between Competition and Data Privacy – COLANGELO – June 2024...
The Intersection between Competition and Data Privacy – COLANGELO – June 2024...
 
怎么办理(lincoln学位证书)英国林肯大学毕业证文凭学位证书原版一模一样
怎么办理(lincoln学位证书)英国林肯大学毕业证文凭学位证书原版一模一样怎么办理(lincoln学位证书)英国林肯大学毕业证文凭学位证书原版一模一样
怎么办理(lincoln学位证书)英国林肯大学毕业证文凭学位证书原版一模一样
 
ServiceNow CIS-ITSM Exam Dumps & Questions [2024]
ServiceNow CIS-ITSM Exam Dumps & Questions [2024]ServiceNow CIS-ITSM Exam Dumps & Questions [2024]
ServiceNow CIS-ITSM Exam Dumps & Questions [2024]
 
The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...
The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...
The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...
 
BRIC_2024_2024-06-06-11:30-haunschild_archival_version.pdf
BRIC_2024_2024-06-06-11:30-haunschild_archival_version.pdfBRIC_2024_2024-06-06-11:30-haunschild_archival_version.pdf
BRIC_2024_2024-06-06-11:30-haunschild_archival_version.pdf
 
Competition and Regulation in Professions and Occupations – ROBSON – June 202...
Competition and Regulation in Professions and Occupations – ROBSON – June 202...Competition and Regulation in Professions and Occupations – ROBSON – June 202...
Competition and Regulation in Professions and Occupations – ROBSON – June 202...
 
The Intersection between Competition and Data Privacy – CAPEL – June 2024 OEC...
The Intersection between Competition and Data Privacy – CAPEL – June 2024 OEC...The Intersection between Competition and Data Privacy – CAPEL – June 2024 OEC...
The Intersection between Competition and Data Privacy – CAPEL – June 2024 OEC...
 
XP 2024 presentation: A New Look to Leadership
XP 2024 presentation: A New Look to LeadershipXP 2024 presentation: A New Look to Leadership
XP 2024 presentation: A New Look to Leadership
 
nationalismineurope-230420140400-1c53f60e.pptx
nationalismineurope-230420140400-1c53f60e.pptxnationalismineurope-230420140400-1c53f60e.pptx
nationalismineurope-230420140400-1c53f60e.pptx
 
Why Psychological Safety Matters for Software Teams - ACE 2024 - Ben Linders.pdf
Why Psychological Safety Matters for Software Teams - ACE 2024 - Ben Linders.pdfWhy Psychological Safety Matters for Software Teams - ACE 2024 - Ben Linders.pdf
Why Psychological Safety Matters for Software Teams - ACE 2024 - Ben Linders.pdf
 
原版制作贝德福特大学毕业证(bedfordhire毕业证)硕士文凭原版一模一样
原版制作贝德福特大学毕业证(bedfordhire毕业证)硕士文凭原版一模一样原版制作贝德福特大学毕业证(bedfordhire毕业证)硕士文凭原版一模一样
原版制作贝德福特大学毕业证(bedfordhire毕业证)硕士文凭原版一模一样
 
Carrer goals.pptx and their importance in real life
Carrer goals.pptx  and their importance in real lifeCarrer goals.pptx  and their importance in real life
Carrer goals.pptx and their importance in real life
 
Pro-competitive Industrial Policy – LANE – June 2024 OECD discussion
Pro-competitive Industrial Policy – LANE – June 2024 OECD discussionPro-competitive Industrial Policy – LANE – June 2024 OECD discussion
Pro-competitive Industrial Policy – LANE – June 2024 OECD discussion
 
Artificial Intelligence, Data and Competition – OECD – June 2024 OECD discussion
Artificial Intelligence, Data and Competition – OECD – June 2024 OECD discussionArtificial Intelligence, Data and Competition – OECD – June 2024 OECD discussion
Artificial Intelligence, Data and Competition – OECD – June 2024 OECD discussion
 
Proposal: The Ark Project and The BEEP Inc
Proposal: The Ark Project and The BEEP IncProposal: The Ark Project and The BEEP Inc
Proposal: The Ark Project and The BEEP Inc
 
IEEE CIS Webinar Sustainable futures.pdf
IEEE CIS Webinar Sustainable futures.pdfIEEE CIS Webinar Sustainable futures.pdf
IEEE CIS Webinar Sustainable futures.pdf
 
Disaster Management project for holidays homework and other uses
Disaster Management project for holidays homework and other usesDisaster Management project for holidays homework and other uses
Disaster Management project for holidays homework and other uses
 

Devoxx 2018 - Pivotal and AxonIQ - Quickstart your event driven architecture

  • 1. © Copyright 2018 Pivotal Software, Inc. All rights Reserved. Version 1.0 Quickstart your Event Driven Architecture Ben Wilcock, Pivotal @benbravo73 Steven van Beelen, AxonIQ @smcvbeelen &
  • 2. ■ A Reference Architecture ■ Open-source ■ CQRS & Event Sourcing ■ Spring Boot ■ Axon Framework ■ PCF (Pivotal Web Services) ■ URL axontrader.cfapps.io Introducing Axon Trader
  • 3. Spring Boot Java’s most popular microservices framework ● Is there anyone who hasn’t heard of SpringBoot? ● Fast, easy to build stand-alone Spring applications ● Opinionated ‘starter’ dependencies that autoconfigure ● ‘starter-web’ is great for RESTful microservices ● Embeds Tomcat, Jetty or Undertow ● Production-ready features (metrics, health, config) ● Easy to get started with guides & initializer ● https://spring.io/projects/spring-boot
  • 4. Axon Solving non-functional app complexity in Message-Driven systems ● Open Source (Apache 2 License) Java framework ● First-class support for CQRS, DDD and EDA concepts ○ Aggregates & Aggregate Roots ○ Commands, Queries and Events ○ Event Sourcing ○ Sagas ● Helps focusing on the business functionality in your application ● https://axoniq.io/
  • 5. PCF The premier platform for cloud-native development ● Focussed on developer productivity ● The fastest path to production ● Fully polyglot with support for Java, .Net, NodeJS, Python, etc. ● Marketplace services - DBs, MQs, APMs, etc. ● Highly automatable & CI / CD friendly ● Deploy code to production 000’s of times a month! ● Available online via Pivotal Web Services (PWS) at run.pivotal.io
  • 6. C(ommand) Q(uery) R(esponsibility) S(egregation) Domain logic Projections Client Events Commands Queries CQRS, what is it?
  • 7. Wallet Id: 123 Owner: Steven Balance: €1000 Event Sourcing, what is it? C.R.U.D. Event Sourcing WalletCreatedEvent: Id: 123, Owner: Steven > Balance: €0 CashDepositedEvent: €1500 > Balance: €1500 CashWithdrawnEvent: €500 > Balance: €1000 CashWithdrawnEvent: €500 > Balance: €500 CashDepositedEvent: €500 > Balance: €1000Balance is persisted, but how we got here isn’t clear. Great for projections and views, but somewhat ‘lossy’. Example: Virtual Wallet
  • 8. "Event" and “Message" are not the same thing! PublicAPI Message Driven APIs: what do they consist of? Commands Route to single handler Use consistent hashing Return a result Events Distribute to all event handlers Consumers express ordering req’s Return no result Can be persisted Can be a ‘source’ of agg. state Can be used to build projections Queries Route with load balancing Sometimes scatter/gather Return a result
  • 10. Demo: Commissioning MySQL Database with PCF... No DBA’s. No IT tickets. Just two simple commands: ➢ “cf create-service” ○ Provisions a ‘tablespace’ with inline with the selected plan ○ Fully automated - no manual steps ➢ “cf bind-service” ○ Creates a dedicated user for the application with credentials ○ Adds the connection string and credentials into the applications environment variables (picked up automatically by SpringBoot)
  • 11. No servers. No containers. No ssh. Just one simple command: ➢ “cf push” ○ Uploads your code to Cloud Foundry ○ Layers required runtimes (e.g. JVM) onto a hardened container ○ Sets up a route (URL) for your app ○ Creates a load balancing entry for each instance ○ Sets up SSL termination and mTLS ○ Creates health monitoring & logging subsystems ○ Binds all required backing services (database, messaging etc.) ○ Schedules your app container to start ○ Starts your app with the desired number of instances (scale) ○ Automatically restarts your app should it ever stop... Demo: Pushing code to production with PCF...
  • 12. But how does this help us..?
  • 13. Pivotal Services MarketplacePivotal Cloud Foundry (PAS) CPI (Multi-cloud ‘Cloud Provider API’) Application Code & Frameworks Buildpacks | Spring Boot & Java | .NET | NodeJS | Python | Go | Staticfile | PHP | Ruby cf push | cf create-service | cf bind-service vSphere Azure & Azure StackGoogle CloudAWSOpenstack Marketplace for Pivotal and Partner Products Public Cloud Services Customer Managed Services OpenServiceBrokerAPI MySQL Relational DB Spring Cloud Services (Registry, Config, etc.) Rabbit MQ Messaging Redis Key Value Store Trader UI Home Dashboard Order Books Users Images Layout Application starts life as a monolith which is easier to design and build Trader App Companies Users Portfolios Order Books Evolutionary Architecture
  • 14. Pivotal Services MarketplacePivotal Cloud Foundry (PAS) CPI (Multi-cloud ‘Cloud Provider API’) Application Code & Frameworks Buildpacks | Spring Boot & Java | .NET | NodeJS | Python | Go | Staticfile | PHP | Ruby cf push | cf create-service | cf bind-service vSphere Azure & Azure StackGoogle CloudAWSOpenstack Marketplace for Pivotal and Partner Products Public Cloud Services Customer Managed Services OpenServiceBrokerAPI MySQL Relational DB Spring Cloud Services (Registry, Config, etc.) Rabbit MQ Messaging Redis Key Value Store Trading Engine Order Books Portfolios Then we strangle the monolithusing location transparency andadding services Trader UI Home Dashboard Order Books Users Images Layout Trader App Companies Users
  • 15. Pivotal Services MarketplacePivotal Cloud Foundry (PAS) CPI (Multi-cloud ‘Cloud Provider API’) Application Code & Frameworks Buildpacks | Spring Boot & Java | .NET | NodeJS | Python | Go | Staticfile | PHP | Ruby cf push | cf create-service | cf bind-service vSphere Azure & Azure StackGoogle CloudAWSOpenstack Marketplace for Pivotal and Partner Products Public Cloud Services Customer Managed Services OpenServiceBrokerAPI MySQL Relational DB Spring Cloud Services (Registry, Config, etc.) Rabbit MQ Messaging Redis Key Value Store Trading EngineTrader App Companies Users Order Books Portfolios Trading Engine iN Order Books Portfolios Finally, separating ourapplication into microservicesmakes it easier to maintainand scale Trader UI Home Dashboard Order Books Users Images Layout
  • 16. What’s next? Coming Soon… Axon Server in the Pivotal Service Marketplace We’re working on getting Axon Server into the PCF marketplace allowing dedicated on-demand Event Store, Command, Query and Event routing services & $> cf create-service axon-server
  • 17. Check it out! Thanks for attending! Wallet RepoAxon Trader Ben Wilcock, Pivotal @benbravo73 Steven van Beelen, AxonIQ @smcvbeelen steven@axoniq.io