SlideShare a Scribd company logo
autodiscoverable
microservices with
vertx3
Andy Moncsek
About me
• Andy Moncsek
• Senior Consultant Application development
• Trivadis AG Switzerland
• Email: Andy.Moncsek@Trivadis.com
• Twitter: @AndyAHCP
Agenda
• about microservices
• Vert.x 3 introduction
• microservices on top of Vert.x 3
C
E
B
A
C
G
H
F
I
about microservices
C
E
B
A
C
G
H
F
I
characteristics of microservices [1 Martin
Fowler]
• component oriented, replaceable, independent
• focus on business capabilities
• UNIX style: do one thing well & work together
• smart endpoint & dump pipes (no ESB ;-) )
• distributed / decentralized data
AA
AE
AF
AG
AC
AH
AB
AC
AI
microservice design patterns
• Architecture patterns
• Router/Aggregator/Chained/shared-data
• Deployment patterns
• instance per host, VM, Container
AA
AE
AF
AG
AC
AH
AB
AC
AI
microservice design patterns
• Interaction/communication pattern
• Request-Reply vs. Pub-Sub / Events vs.
Queries/Commands
• Service discovery
• serverside/clientside-discovery / self-/3d-party-
registration AA
AE
AF
AG
AC
AH
AB
AC
AI
Vert.x 3
C
E
B
A
C
G
H
F
I
Vert.X 3
(tool-kit for building reactive
applications)
• nodeJS for Java developers :-D (sorry Tim)
• event driven / non blocking
• polyglot (written in Java 8)
• general purpose (web, backend)
• http://vert-x3.github.io, current version: v3.0-milestone6
Vert.X 3 (terms)
• Vert.X
• Verticle
• Event Bus
• Eventloop vs. Worker AA
AE
AF
AG
AC
AH
AB
AC
AI
Vert.X 3 (terms)
• Scaling, Cluster / HA
• VerticleFactory
• packaging
• TCP, UDP, HTTP, WebSocket, SocketJS, FileSystem,….. AA
AE
AF
AG
AC
AH
AB
AC
AI
Vert.x 3
DEMO
C
E
B
A
C
G
H
F
I
microservices on top
of Vert.x 3
C
E
B
A
C
G
H
F
I
https://github.com/amoAHCP/vert.x-microservice
Vert.X microservice framework
• current status: working prototype!
• idea: all-in-one microservice framework based on Vert.X
• components:
• service Verticle
• service router / API gateway
• service registry / heartbeat
• service discovery AA
AE
AF
AG
AC
AH
AB
AC
AI
Vert.X microservice framework - service
Verticle
Verticle
@ApplicationPath("/articleService")
desc.
@Path("/comments/:id")
@OperationType(Type.REST_GET)
findComments(@PathParam("id") final String id, Message m)
@Path("/fetchByArticleIdWS")
@OperationType(Type.WEBSOCKET)
fetchByArticleIdWS(String id, WSMessageReply r)
@Path("/fetchByArticleId")
@OperationType(Type.EVENTBUS)
fetchByArticleId(String id, EBMessageReply r)
Vert.X microservice framework - router / gateway
Event Bus
Event Bus
Event Bus
Vert.X cluster
service
service
service
service
service
router
/gateway
host:port
@Path("/articleService/comments/:id")
@Path(„/../fetchByArticleIdWS")
@Path(„/..byArticleId“)
client
client
client
serviceservice
serviceservice
Vert.X microservice framework - registry /
heartbeat
router
/gateway
host:port
service
service
service
service
service
Vert.X cluster
registry register
register
heart-
beat ping
Vert.X microservice framework - discovery
Vert.X cluster
servi
ce servi
ce
servi
ce servi
ce
servi
ce
router
/gatew
ay
host:po
rtregis
try
discovery.service(„name“, op->
);
op.operation(„path“, p->
)
fail
p.eventBusSend(„message",r->{
// reply
});
fail
Vert.x microservice
framework
DEMO
C
E
B
A
C
G
H
F
I
any
questions?
C
E
B
A
C
G
H
F
I
Thank you
C
E
B
A
C
G
H
F
I
• [1] http://www.infoq.com/news/2014/11/gotober-fowler-
microservices
• [2] http://www.adam-
bien.com/roller/abien/entry/the_perfect_javaee_microser
vice
• [3] https://www.voxxed.com/blog/2015/04/coupling-
versus-autonomy-in-microservices/
• [4] https://www.voxxed.com/blog/2015/04/microservice-
design-patterns/

More Related Content

PPTX
Building microservices with vert.x 3.0
PDF
Service Discovery: From Classic to VPC
PPTX
The Hardest Part of Microservices: Calling Your Services
PDF
Istio: solving challenges of hybrid cloud
PPTX
KubeCon NA 2018: Evolution of Integration and Microservices with Service Mesh...
PDF
2019-06-12 aOS Aix Marseille - C4 - Un besoin 10 solutions Azure Fighter - Fé...
PPTX
Microservices with Apache Camel, Docker and Fabric8 v2
PPTX
Real-world #microservices with Apache Camel, Fabric8, and OpenShift
Building microservices with vert.x 3.0
Service Discovery: From Classic to VPC
The Hardest Part of Microservices: Calling Your Services
Istio: solving challenges of hybrid cloud
KubeCon NA 2018: Evolution of Integration and Microservices with Service Mesh...
2019-06-12 aOS Aix Marseille - C4 - Un besoin 10 solutions Azure Fighter - Fé...
Microservices with Apache Camel, Docker and Fabric8 v2
Real-world #microservices with Apache Camel, Fabric8, and OpenShift

What's hot (20)

PDF
Microservices with Spring Cloud, Netflix OSS and Kubernetes
PPTX
Microservices Journey Fall 2017
PPTX
JEE session 1
PPTX
Advance java session 2
PPTX
PHX DevOps Days: Service Mesh Landscape
PPTX
Un problème 10 solutions : Azure Fighter
PPTX
Aws sys ops administrator
PPTX
Come for the traffic management, stay for the security
PDF
Cloud, Security and opensource 2012-12-28 at SSU
PPTX
Eight Miles High: Build Cloud-native and Cloud-aware Systems
PDF
Running Microservices in Production with IBM
PDF
Chicago Microservices Integration Talk
PDF
GUJavaSC - Criando Micro-serviços Reativos com Java
DOCX
Weblogic server short
PPTX
Atlanta Microservices Day: Istio Service Mesh
PDF
Running Microservices in Production with IBM
PDF
Enterprise grade-deployment-2019
PDF
Gwt cdi jud_con_berlin
PPTX
Docker Dublin: Just What is a Service Mesh, and if I get one will it make eve...
PDF
Blockchain Educational Framework - Course Overview
Microservices with Spring Cloud, Netflix OSS and Kubernetes
Microservices Journey Fall 2017
JEE session 1
Advance java session 2
PHX DevOps Days: Service Mesh Landscape
Un problème 10 solutions : Azure Fighter
Aws sys ops administrator
Come for the traffic management, stay for the security
Cloud, Security and opensource 2012-12-28 at SSU
Eight Miles High: Build Cloud-native and Cloud-aware Systems
Running Microservices in Production with IBM
Chicago Microservices Integration Talk
GUJavaSC - Criando Micro-serviços Reativos com Java
Weblogic server short
Atlanta Microservices Day: Istio Service Mesh
Running Microservices in Production with IBM
Enterprise grade-deployment-2019
Gwt cdi jud_con_berlin
Docker Dublin: Just What is a Service Mesh, and if I get one will it make eve...
Blockchain Educational Framework - Course Overview
Ad

Viewers also liked (7)

PDF
An Introduction to Reactive Application, Reactive Streams, and options for JVM
PPTX
DDD-Enabling Architectures with EventStore
PDF
Reactive Microservices with Vert.x
PDF
Modern app programming with RxJava and Eclipse Vert.x
PPTX
Patterns and practices for real-world event-driven microservices
PDF
Vert.X: Microservices Were Never So Easy (Clement Escoffier)
PDF
How to build an event-driven, polyglot serverless microservices framework on ...
An Introduction to Reactive Application, Reactive Streams, and options for JVM
DDD-Enabling Architectures with EventStore
Reactive Microservices with Vert.x
Modern app programming with RxJava and Eclipse Vert.x
Patterns and practices for real-world event-driven microservices
Vert.X: Microservices Were Never So Easy (Clement Escoffier)
How to build an event-driven, polyglot serverless microservices framework on ...
Ad

Similar to autodiscoverable microservices with vertx3 (20)

PPT
E suap - INISTA 2014
PPT
e-Suap Inista 2014 (International Symposium on INnovation in Intelligent SysT...
PPTX
Pros & Cons of Microservices Architecture
PPTX
Micro service session 1
PDF
Ekon20 mORMot SOA Delphi Conference
PPSX
Microservices Docker Kubernetes Istio Kanban DevOps SRE
PDF
Design and Develop Serverless Applications as Set-Pieces
PDF
Microservices for Enterprises
PDF
Microservices The Good, the Bad, and the Ugly
PDF
API’s and Micro Services 0.5
PDF
Building a Scalable and reliable open source ML Platform with MLFlow
PPTX
API World: The service-mesh landscape
PDF
Timeless design in a cloud-native world
PDF
Microservices and Serverless for Mega Startups - DevOps IL Meetup
PDF
[WSO2Con EU 2017] Microservices for Enterprises
PPTX
Clean architecture proposal-Generic.pptx
PPTX
How Cloud Computing will change how you and your team will run IT
PPTX
An introduction to Microservices
PPTX
Tokyo Azure Meetup #5 - Microservices and Azure Service Fabric
PDF
Design & Construction Presentation on the New Putnam Vocational Technical Aca...
E suap - INISTA 2014
e-Suap Inista 2014 (International Symposium on INnovation in Intelligent SysT...
Pros & Cons of Microservices Architecture
Micro service session 1
Ekon20 mORMot SOA Delphi Conference
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Design and Develop Serverless Applications as Set-Pieces
Microservices for Enterprises
Microservices The Good, the Bad, and the Ugly
API’s and Micro Services 0.5
Building a Scalable and reliable open source ML Platform with MLFlow
API World: The service-mesh landscape
Timeless design in a cloud-native world
Microservices and Serverless for Mega Startups - DevOps IL Meetup
[WSO2Con EU 2017] Microservices for Enterprises
Clean architecture proposal-Generic.pptx
How Cloud Computing will change how you and your team will run IT
An introduction to Microservices
Tokyo Azure Meetup #5 - Microservices and Azure Service Fabric
Design & Construction Presentation on the New Putnam Vocational Technical Aca...

More from Andy Moncsek (9)

PPTX
The JVM in the Cloud: OpenJ9 and the traditional HotSpot JVM
PDF
Master your java_applications_in_kubernetes
PPT
Going serverless with Fn project, Fn Flow and Kubernetes
PPTX
Vert.x based microservices with vxms
PPTX
Event driven microservices with vxms, hazelcast and kubernetes - muenchen
PPTX
Event driven microservices with vertx and kubernetes
PPTX
Building non-blocking JavaFX 8 applications with JacpFX [CON1823]
PPTX
JavaFX / JacpFX interaction with JSR356 WebSockets
PPTX
Scalableenterpriseapplicationswith jee7andbeyond
The JVM in the Cloud: OpenJ9 and the traditional HotSpot JVM
Master your java_applications_in_kubernetes
Going serverless with Fn project, Fn Flow and Kubernetes
Vert.x based microservices with vxms
Event driven microservices with vxms, hazelcast and kubernetes - muenchen
Event driven microservices with vertx and kubernetes
Building non-blocking JavaFX 8 applications with JacpFX [CON1823]
JavaFX / JacpFX interaction with JSR356 WebSockets
Scalableenterpriseapplicationswith jee7andbeyond

Recently uploaded (20)

PPTX
Tartificialntelligence_presentation.pptx
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
TLE Review Electricity (Electricity).pptx
PDF
Empathic Computing: Creating Shared Understanding
PDF
Encapsulation theory and applications.pdf
PPTX
OMC Textile Division Presentation 2021.pptx
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
Machine Learning_overview_presentation.pptx
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Getting Started with Data Integration: FME Form 101
PDF
Machine learning based COVID-19 study performance prediction
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
A Presentation on Artificial Intelligence
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Tartificialntelligence_presentation.pptx
Spectral efficient network and resource selection model in 5G networks
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf
TLE Review Electricity (Electricity).pptx
Empathic Computing: Creating Shared Understanding
Encapsulation theory and applications.pdf
OMC Textile Division Presentation 2021.pptx
Encapsulation_ Review paper, used for researhc scholars
Machine Learning_overview_presentation.pptx
A comparative analysis of optical character recognition models for extracting...
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Getting Started with Data Integration: FME Form 101
Machine learning based COVID-19 study performance prediction
Reach Out and Touch Someone: Haptics and Empathic Computing
Programs and apps: productivity, graphics, security and other tools
A Presentation on Artificial Intelligence
Building Integrated photovoltaic BIPV_UPV.pdf
Assigned Numbers - 2025 - Bluetooth® Document
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf

autodiscoverable microservices with vertx3

Editor's Notes

  • #6: 1 Martin Fowler : http://www.infoq.com/news/2014/11/gotober-fowler-microservices
  • #7: be aware of different depl. patterns Req.-Resp.: response expected, need to know who to ask; Pub-Sub. : service registers itself Events (order 123 created), Queries/Commands : what should happen https://www.voxxed.com/blog/2015/04/coupling-versus-autonomy-in-microservices/
  • #8: be aware of different depl. patterns Req.-Resp.: response expected, need to know who to ask; Pub-Sub. : service registers itself Events (order 123 created), Queries/Commands : what should happen https://www.voxxed.com/blog/2015/04/coupling-versus-autonomy-in-microservices/
  • #11: 1: The runtime env. either as binary dist. , embedded, fat-jar 2: Verticles are chunks of code that get deployed and run by Vert.x 3: connects all parts of your application (Verticles) / clusterable (Hazlecast) 4: default: Event Loop single threaded - Don’t block the event loop! / Worker Verticles
  • #12: 1: define number of instances (1 thread/instance), Clustering: „EventBus over network“, HA: failover 2: VerticleFactory: SPI to extend Vert.x (different languages, Spring) 3: no custom modules anymore (simple maven & maven-shade-plugin) 4: create …
  • #16: classical „jersey-style“ Path + method vs. async handler registration Why? „reactive / event-driven“ is cool but for many developers still „neuland“ classical input/output (method with parameter and return type) is not applicable (it blocks!)… solution message reply handler
  • #18: challenge: many verticles instances (lokal and cluster) needs to synchronize registration process on startup… solution: cluster-wide counter challenge registry: clusterWideMap is not iterate able… solution: key is the router-key, value is a blob of a descriptor object with all registered descriptions generally figure out how dropwizard is usable for heartbeat
  • #19: client / server API the same connects through vertx instance or REST-URL