SlideShare a Scribd company logo
EVENT BUS AS
BACKBONE FOR
DECOUPLED
MICROSERVICE
CHOREOGRAPHY
Lucas Jellema (CTO AMIS & Oracle ACE Director)
20th April 2017, Oracle Code, London, UK
AGENDA
• Introduction of microservices - objectives, traits, implementation
• The making of a microservice (demo)
• The microservices platform - generic capabilities
• Using events for decoupled interaction and workflow choreography
• Introduction of Apache Kafka for implementing the Event Bus
• Microservices and Event Bus in a hybrid world – cross on-premises and clouds
• Implementing a multi-microservice workflow with event based choreography
• Design, architecture, implementation and live demo
• Music maestro – demonstrating event based workflow choreography by
microservices
• Logging on the microservices platform
SOURCE CODE
• https://github.com/lucasjellema/microservice-choreography-tweetboard
• NodeJS & Java code
• Kafka Producer & Consumer
• Docker build files
• Kubernetes YAML
MICROSERVICE OBJECTIVES
(BECAUSE OF ENTERPRISE OBJECTIVES)
• Flexible, agile (Dev)
• Functionality evolves rapidly with little effort
• Easy quick rollout
• Low impact
• Manageable Non Functionally (Ops)
• Scalable – handle flexible workload (horizontal scaleout)
• Available – deal with failing nodes
• Comprehendable
• Dependencies, Impact, Implementation, deployment, operations
• Ownership (culture, organization, process)
• One team can do functional and technical evolution and deployment continuously
and independently

Recommended for you

AMIS Oracle OpenWorld 2015 Review – part 3- PaaS Database, Integration, Ident...
AMIS Oracle OpenWorld 2015 Review – part 3- PaaS Database, Integration, Ident...AMIS Oracle OpenWorld 2015 Review – part 3- PaaS Database, Integration, Ident...
AMIS Oracle OpenWorld 2015 Review – part 3- PaaS Database, Integration, Ident...

AMIS Oracle OpenWorld 2015 Review – part 3- PaaS Database, Integration, Identity Mgt, IT Ops and DevOps

amis oow15 revieworacle amis integrationpaas
Review Oracle OpenWorld 2015 - Overview, Main themes, Announcements and Future
Review Oracle OpenWorld 2015 - Overview, Main themes, Announcements and FutureReview Oracle OpenWorld 2015 - Overview, Main themes, Announcements and Future
Review Oracle OpenWorld 2015 - Overview, Main themes, Announcements and Future

This presentation (part of the year AMIS Oracle OpenWorld Review session) discusses the main themes for this year's conference and introduces the all encompassing cloud strategy. It highlights some major changes at Oracle Corporation. It lists the major announcements, the hot terminology and the product roadmaps.

oraclesoftware in siliconoracle open world
AMIS Oracle OpenWorld 2015 Review – part 2- Hardware & IaaS and PaaS Cloud Fo...
AMIS Oracle OpenWorld 2015 Review – part 2- Hardware & IaaS and PaaS Cloud Fo...AMIS Oracle OpenWorld 2015 Review – part 2- Hardware & IaaS and PaaS Cloud Fo...
AMIS Oracle OpenWorld 2015 Review – part 2- Hardware & IaaS and PaaS Cloud Fo...

The document provides an overview and review of Oracle's OpenWorld 2015 conference, focusing on Infrastructure as a Service offerings. Key topics covered include: Always-On Security in Silicon; Exadata Cloud Service; ExaLogic On-Premise Cloud Service; Compute Cloud Service; Storage Cloud; Oracle VM; Linux; Docker; WebLogic Server 12cR2; WebLogic Multitenancy; WebLogic Continuous Availability; Automated Elasticity for Dynamic Clusters; REST Management; and Coherence Federated Caching.

jcsoracle openworldwls
MICROSERVICES HOW
• Extremely decoupled (from other, non owned microservices | IT
components)
• Functionally
• Non functionally – platform
• Stateless (especially session-state less)
• Stand alone
• Deployable, manageable, scalable
• Container
• DevOps team
• “You build it, you run it, you fix | evolve it”
STANDING ON SHOULDERS OF GIANTS
• Monolith++
• API
• Scale out
• Automated CI/CD
• SOA++
• Stateless
• HTTP native (REST)
• Multiple tiers & platform components included
• Deployable
MICROSERVICES HOW
• Public APIs in standardized protocols
• Deployable on enterprise standardized microservices platform
• Omnia mea porto mecum no external dependencies
• Except:
• Calls to public APIs (exposed for example by microservices)
• Usage of platform facilities
• Generically available via contract
• Injected via parameters
• No sharing of data or other private resources across microservices
• Stateless and Horizontally scalable
• No session state, no client stickyness
• Potentially micro-silo with multiple tiers (including UI)
• Any implementation technology
• that can run on the platform
MICROSERVICES PLATFORM
• Receives microservice deployment
• Handles scale out & fail over
• Start/stop microservice instances based on
non functional requirements and live observed behavior
• Supports automated DevOps
• CD, monitoring, …
• Provides Capabilities – generic facilities available to microservices
from the run time platform
• Provided through public APIs whenever possible
• Injected meta-data at run time
• implemented by generic/platform level microservices
Microservices Platform
API
deploy, inject
dependencies, start,
watch, restart, stop,
scale
API API
API Gateway
Authenticate
Logging
Cache

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
Systems on the edge - your stepping stones into Oracle Public PaaS Cloud - AM...
Systems on the edge - your stepping stones into Oracle Public PaaS Cloud - AM...Systems on the edge - your stepping stones into Oracle Public PaaS Cloud - AM...
Systems on the edge - your stepping stones into Oracle Public PaaS Cloud - AM...

Adoption of the cloud will not start with the core enterprise applications. There are several ways to start the adoption. One is to move in from training environments through development and test to production. Another takes the importance of applications into consideration, starting with secondary, supporting systems. The approach discussed in this session is to start with edge systems that are already in the DMZ, on the fringes of an enterprises, where they engage in interaction with the outside world. Systems on the edge of an enterprise have special challenges regarding availability, scalability, security and external interactions with systems or people. This applies for example to external portals, B2B interactions, workflows that involve external actors, mobile APIs and integrations with SaaS instances. These systems are obvious candidates to move to a public cloud - and handle these special requirements on the PaaS platform. This session discusses and demonstrates a number of Oracle PaaS Cloud Services, their mutual interaction and how they can be leveraged to move these systems over the edge and into the cloud: Java Cloud Service, Integration Cloud Service, Process Cloud Service, IoT CS, Mobile Cloud Service, SOA Suite Cloud Service and Message Cloud Service. We will go over a number of scenarios for moving edge systems from on premises to the public cloud. Essential in this discussion is of course the integration from the edge system in the Oracle Public Cloud to the on premises backend systems.

oracleportalapi
AMIS Oracle OpenWorld 2015 Review – part 4- PaaS Application Development, Jav...
AMIS Oracle OpenWorld 2015 Review – part 4- PaaS Application Development, Jav...AMIS Oracle OpenWorld 2015 Review – part 4- PaaS Application Development, Jav...
AMIS Oracle OpenWorld 2015 Review – part 4- PaaS Application Development, Jav...

AMIS Oracle OpenWorld 2015 Review – part 4- PaaS Application Development, JavaOne, Mobile, Collaboration and SaaS and User Experience

oracle amis paas saas ux mobile openworld javaone
THE MAKING OF A MICROSERVICE
Dockerfile Pod.yaml
Service.yaml
Volume
(Storage)
Config&Depency
Injection
MICROSERVICE BUSINESS FUNCTIONALITY
MICROSERVICE BUSINESS FUNCTIONALITY
DOCKER FILE
docker build -t lucasjellema/tweet-validator .
docker tag tweet-validator lucasjellema/tweet-validator
docker push lucasjellema/tweet-validator

Recommended for you

What is Kafka & why is it Important? (UKOUG Tech17, Birmingham, UK - December...
What is Kafka & why is it Important? (UKOUG Tech17, Birmingham, UK - December...What is Kafka & why is it Important? (UKOUG Tech17, Birmingham, UK - December...
What is Kafka & why is it Important? (UKOUG Tech17, Birmingham, UK - December...

Fast data arrives in real time and potentially high volume. Rapid processing, filtering and aggregation is required to ensure timely reaction and actual information in user interfaces. Doing so is a challenge, make this happen in a scalable and reliable fashion is even more interesting. This session introduces Apache Kafka as the scalable event bus that takes care of the events as they flow in and Kafka Streams and KSQL for the streaming analytics. Both Java and Node applications are demonstrated that interact with Kafka and leverage Server Sent Events and WebSocket channels to update the Web UI in real time. User activity performed by the audience in the Web UI is processed by the Kafka powered back end and results in live updates on all clients. This presentation includes a demonstration of remote database synchronization through Twitter.

apache kafkakafkaevent hub
Jelastic DevOps Platform Product Overview for Service Providers
Jelastic DevOps Platform Product Overview for Service ProvidersJelastic DevOps Platform Product Overview for Service Providers
Jelastic DevOps Platform Product Overview for Service Providers

Find out why hosting service providers choose Jelastic for their cloud business and what technologies they offer to the users based on this PaaS and CaaS solution.

paasmulti cloudcaas
Keynote Oracle Fusion Middleware Summit_2020
Keynote Oracle Fusion Middleware Summit_2020Keynote Oracle Fusion Middleware Summit_2020
Keynote Oracle Fusion Middleware Summit_2020

Michel Schildmeijer gave a keynote at the Oracle Middleware Summit on January 9th, 2019. He discussed the history and evolution of Oracle Fusion Middleware from traditional middleware to more modern, cloud-native approaches. He outlined Oracle's focus on containers, Kubernetes, and microservices and how WebLogic and other FMW products are adapting to these trends, including new options like Helidon for developing microservices. Schildmeijer concluded that WebLogic will still be foundational but the focus is shifting to hybrid cloud-native solutions.

oracle weblogic serveroracle soa suiteoracle fusion middleware
DOCKER HUB
KUBERNETES POD YAML FILE
RUNNING POD IN KUBERNETES
INVOKE MICROSERVICE API

Recommended for you

Integrating Alfresco @ Scale (via event-driven micro-services)
Integrating Alfresco @ Scale (via event-driven micro-services)Integrating Alfresco @ Scale (via event-driven micro-services)
Integrating Alfresco @ Scale (via event-driven micro-services)

Alfresco DevCon 2018 (Lisbon) - https://devcon.alfresco.com/ Alfresco provides a rich set of options for integrating third-party systems with services across the Digital Business Platform. We will deep-dive into the architecture of the new Alfresco Integration Services framework – a set of event-driven micro-services that can be easily deployed & scaled. https://www.youtube.com/watch?v=TyB-t7wsDEE

 
by J V
alfrescointegrationkubernetes
AMIS Beyond the Horizon - High density deployments using weblogic multitenancy
AMIS Beyond the Horizon - High density deployments using weblogic multitenancyAMIS Beyond the Horizon - High density deployments using weblogic multitenancy
AMIS Beyond the Horizon - High density deployments using weblogic multitenancy

This document provides an overview of Weblogic multitenancy including key concepts, components, isolation, consolidation benefits, portability for DevOps, and the Java Cloud Service. It discusses how multitenancy allows optimal use of resources by consolidating applications into partitions within a single Weblogic domain rather than separate domains. Isolation is achieved through mechanisms like dedicated JNDI trees and pluggable databases. Portability is enabled by exporting and importing partitions between environments. The Java Cloud Service supports Weblogic multitenancy with minimal Enterprise edition features.

oracleweblogicamis25
Oracle SOA suite and Coherence dehydration
Oracle SOA suite and  Coherence dehydrationOracle SOA suite and  Coherence dehydration
Oracle SOA suite and Coherence dehydration

Extreme performance with Oracle SOA Suite 12.2, Coherence and Exalogic can be achieved by configuring the platform to take advantage of the Exalogic infrastructure and optimizing SOA Suite and Coherence settings. Key aspects include using Coherence caching to minimize database transactions, configuring optimal WebLogic and JDBC settings for InfiniBand networking, and tuning SOA Suite dehydration and caching properties. This provides significant performance gains over a traditional architecture.

oracle weblogic serveroracle soa suitecoherence
SHARED PLATFORM CAPABILITY
• Microservices are isolated
• Not aware of each other (except through public APIs)
• Not sharing private resources
• Ideally each microservice brings its own platform
• To prevent run time environment from being out of synch and creating dependency/impact between
multiple platform users
• However: At some level, sharing is inevitable Storage, Compute, power supply, building
• In practice: having full blown RDBMS or Java EE server or Kafka cluster as part of a
microservice may be unfeasible
• Even if Docker images are light weight from layering – the run time resource usage is probably not
• One approach: forbid use of heavy platforms
• Alternative approach: provide generic ‘heavy duty’ platform capabilities, available for
use in any microservice in a standardized way
• If you need it, you can make use of your own private Oracle Database 12c Schema (or PDB) with
the following features available to you … ; recovery can be performed in the following ways and
under these conditions.
MICROSERVICES CROSS PLATFORM
CAPABILITIES
• Authentication
• Persistent Storage
• Cache
• Load balancing/API Gateway
• Discovery/Lookup
• Monitoring
• Functional/Business KPIs
• Non Functional Platform/Container & Infra
• Audit, Usage tracking, Billing
• Notifications and alerting
• Logging
• Relational Database Capability
Microservices Platform
API
API
UI
API UI
Logging
Cache
Authentication
Notification
Usage
Tracking
EXAMPLE SYSTEM ARCHITECTURE
Microservices Platform
API
API
Logging
Cache
API API
UI
HTML 5
Web
Component
REST/
JSON
Authentication
API UI
Java /
Spring
Boot
NodeJS &
Express &
MongoDB Redis
Widgets
REST/
JSON
Storage
Python &
MySQL
REST/
JSON
WebLogic
& Oracle
Database
Legacy
Application
API UI
Strangler
NodeJS &
Express
Notification
Usage
Tracking
TRENDS, CHALLENGES, COMMON
• Use of containers and container management
• Docker Containers – layered, packaged & shippable, registry
• Docker Container Management: Composer, Mesos, Swarm or Kubernetes
• Application Container platform such as Google App Engine, Azure App Service,
Oracle Application Container Cloud, AWS Beanstalk
• Serverless computing – AWS Lambda, Oracle Functions
• Use of cache for [state of] longer running conversations
• Transaction, session, workflow, business process
• New ways to consider data
• Every microservice owns the data it requires – data denormalization and
duplication of data across microservices is a logical consequence
• Command Query Responsibility Segregation (CQRS) and Event Sourcing
• Orchestration | Choreography across microservices

Recommended for you

Camel oneactivemq posta-final
Camel oneactivemq posta-finalCamel oneactivemq posta-final
Camel oneactivemq posta-final

This document provides an overview of a presentation given at CamelOne 2013 in Boston on June 10-11, 2013 about the internals of Apache ActiveMQ. The presentation covered the major subcomponents of ActiveMQ including transports, the broker core, persistence adapters, and networking brokers. It provided details on architecture, configuration, and implementation of these different aspects of ActiveMQ.

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

The document discusses strategies for transitioning from monolithic architectures to microservice architectures. It outlines some of the challenges with maintaining large monolithic applications and reasons for modernizing, such as handling more data and needing faster changes. It then covers microservice design principles and best practices, including service decomposition, distributed systems strategies, and reactive design. Finally it introduces Lagom as a framework for building reactive microservices on the JVM and outlines its key components and development environment.

lagommicroservicesdecomposition
Introduction into Docker Containers, the Oracle Platform and the Oracle (Nati...
Introduction into Docker Containers, the Oracle Platform and the Oracle (Nati...Introduction into Docker Containers, the Oracle Platform and the Oracle (Nati...
Introduction into Docker Containers, the Oracle Platform and the Oracle (Nati...

Containers are increasingly popular to package, ship and run applications or microservices with their completely configured runtime environment including platform components such as application server and data store.Continuous Delivery and automated DevOps hinge on containers. Docker Containers are widely used and Oracle has long been involved in the Docker community.This session introduces the Docker Container images published by Oracle for flagship products such as Database, WebLogic, Linux and Java and demonstrates how these can be used in environment provisioning, automated delivery pipelines and microservices architectures. The session shows how containers are built, shipped and run based on these images and shows the Oracle Container Cloud, as well as Wercker Cloud (for automated build and delivery pipelines) and Oracle Cloud Engine - the managed Kubernetes cloud service..

dockercontainersmicroservices
EVENTS
Producers
Consumers
MICROSERVICES AND EVENTS
• Report business events [without knowing to whom and without expecting a response]
• Allowing interested microservices to respond – for example trigger serverless functions
• Provide response to stateless caller – with conversation key
• Choreograph cross-microservice workflow | process
• Inform workflow | process orchestrator | job scheduler about activity status
• Enable distributed transaction – commit and rollback/compensate
• Make data events available for event sourcing
• Allowing microservices to maintain their own [derived] data set
• Synchronize cache refresh
• Informing any microservice caching data about the need to refresh specific records
• Hand systems events & metrics to monitoring service
• Extreme decoupling – microservice choreography
• Microservice never call each other, not even through public API;
all interactions are through events
MICROSERVICE WORKFLOW
CHOREOGRAPHY
• Multi step process
• Each step in different microservice
• Multiple approaches
• Orchestrator – running the process by invoking the required microservices
subsequently, responding either to synch response, asynch callback or event
• Choreography – allow the required microservices to react to relevant events
• Act when it is your turn (as determined by routing slip?)
• Share state through cache with claim check in routing slip
• When done, publish updated routing slip
• Possibly implement compensation handler
REQUIREMENTS FOR EVENT CAPABILITY
IN MICROSERVICES PLATFORM
• Provide decoupling between publisher and consumer
• Generally accessible for all microservices
• Across the platform
• Using standardized protocols and formats for communications and event payload (http,
JSON)
• Scalable (handle high loads)
• Available (allow speedy event publication)
• Reliable (do not lose events, at least once delivery)
• Event Ordering (deliver events in the order of publication)
• Retain Event History
• Manageable at scale
• Event Catalog – which events are published, what do they mean and what is
their payload
• Harvested from microservices

Recommended for you

Oracle application container cloud back end integration using node final
Oracle application container cloud back end integration using node finalOracle application container cloud back end integration using node final
Oracle application container cloud back end integration using node final

This document provides an overview of using Node.js for backend integration. It discusses how Node.js uses a single thread model with asynchronous and non-blocking I/O to provide high performance. Common Node.js frameworks like Express and Hapi are presented. The document also covers integrating Node.js with databases like Oracle NoSQL and MongoDB using modules like node-oracledb and mongoose. It provides examples of calling PL/SQL functions and using connection pooling with Node.js and Oracle Database. Finally, it introduces Application Container Cloud as providing capabilities beyond what Node.js alone offers like high availability, management, and support.

oracle openworld
Jelastic Overview: Technical and Business Benefits
Jelastic Overview: Technical and Business BenefitsJelastic Overview: Technical and Business Benefits
Jelastic Overview: Technical and Business Benefits

Find out what Jelastic is, where we are at the cloud market and what technical and business benefits we offer.

cloudpaasiaas
Event Bus as Backbone for Decoupled Microservice Choreography - Lecture and W...
Event Bus as Backbone for Decoupled Microservice Choreography - Lecture and W...Event Bus as Backbone for Decoupled Microservice Choreography - Lecture and W...
Event Bus as Backbone for Decoupled Microservice Choreography - Lecture and W...

Microservices are independent, encapsulated entities that produce meaningful results and business functionality in tentative collaboration. Events and pub/sub are great for allowing such decoupled interaction. Using Apache Kafka as robust, distributed, real-time, high volume event bus, this session demonstrates how microservices packaged with Docker and implemented in Java, Node, Python and SQL collaborate unknowingly. The microservices respond to social (media) events - courtesy of IFTTT - and publish results to multiple channels. The event bus operates across cloud services and on premises platforms such as Kubernetes: both the bus and the microservices can run anywhere. A microservices platform is discussed with generic capabilities. The resources for the accompanying workshop are in GitHub: https://github.com/lucasjellema/workshop-event-bus-microservice-choreography-may-2018

kafkakubernetesmicroservices
INTRODUCING APACHE KAFKA
• ..- 2010 – creation at Linkedin
• Message Bus | Event Broker
• High volume, low latency, highly reliable, cross technology
• Scalable, distributed, strict message ordering, ….
• 2011/2012 – open source under the Apache Incubator/ Top Project
• Kafka is used by many large corporations:
• Walmart, Cisco, Netflix, PayPal, LinkedIn, eBay, Spotify, Uber, Sift Science
• And embraced by many software vendors & cloud providers
• Client libraries available for NodeJS, Java, C++, Python, Ruby, PHP
and many more
KAFKA TERMINOLOGY
• Topic
• partition
• Message
• == ByteArray
• Broker
• replicated
• Producer
• Consumer
• Working together
in Consumer Groups
Producer Consumer
Topic
Broker
Key
Value
Time
Message
Producers
Consumers
Topic
Broker
tcp
tcp
CONNECT MICROSERVICES TO KAFKA –
NODEJS EXAMPLE

Recommended for you

Business and IT agility through DevOps and microservice architecture powered ...
Business and IT agility through DevOps and microservice architecture powered ...Business and IT agility through DevOps and microservice architecture powered ...
Business and IT agility through DevOps and microservice architecture powered ...

IT needs to run in production in order to generate business value. DevOps is among other things a way of thinking focusing on production software. A business application requires a tailor made platform to generate business value. The combination of application and its platform is a DevOps product. The DevOps team has full responsibility for that product through its entire lifecycle. The microservices architecture promises flexibility, scalability, and optimal use of compute resources. Via independent components with well-defined scope and responsibility, interface, and ownership that are evolved and managed in an automated DevOps process, this architecture leverages current technologies and hard-learned insights from past decades. This session defines the objectives of Business with IT, of microservices and DevOps and introduces Containers and the container platform Kubernetes as crucial ingredients for making DevOps happen.

devopsmicroservicescontainers
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?

EXTENDED API OF MICROSERVICE
• Deployment API
• Injectable dependencies – reference to cache, logging, storage URL, …
• Configurable meta-data – run time parameters, log level, credential (key)
• Interraction API
• REST Resources & Operations – query and URL parameters, message
formats
• Events Consumed – alternative way to call | activate a microservice
• Reference to entry in Event Catalog
• May include reference to shared Cache Resource
• Events Produced – alternative output from microservice
• Event can be an asynchronous response to a stateless consumer
API
EVENT BRIDGE TO CONNECT CLOUD & ON
PREMISES EVENT BUS
• An event bus based on Apache Kafka can run on premises and in the cloud
• Various cloud vendors offer such an Apache Kafka service
• For example Oracle Event Hub CS
• In a hybrid landscape – both on premises and in-the-cloud microservices – two
event buses can be used with a bridge between the two
• Or more if multiple clouds are part of the landscape
EventHub CS
On premises
Event Bus
EventHub CS
EVENT BRIDGE TO CONNECT CLOUD &
ON PREMISES EVENT BUS
Microservices Platform
API
EventHub CS
On premises
EventBridge
API
API
API
API
API
API
API
API
Event Bus
API
EventBridgeEventBridge
DESIRED WORKFLOW
Tweet about
OracleCode
Validate
Tweet
No simple retweet, no
black listed words used,
no known robot tweeter
or otherwise excluded
authors, no undesirable
location
Enrich Tweet
Details about author, location,
hashtags, acronyms and
abbreviations used in tweet
Add Tweet to
TweetBoard
Add the tweet to the top
of the TweetBoard – a
list of recent, relevant
tweets
Publish
TweetBoard
Publish the TweetBoard
through API and UI
(HTML web document)
done

Recommended for you

Microservices in the Enterprise
Microservices in the Enterprise Microservices in the Enterprise
Microservices in the Enterprise

This document provides an overview of microservices in the enterprise. It discusses factors driving the rise of microservices like SOA fatigue and the need for faster innovation. Examples of microservice architectures from companies like Netflix, Twitter and Gilt are presented. Key capabilities for building enterprise-ready microservices are described, including service discovery, description, deployment isolation using containers, data/verb partitioning, lightweight middleware, API gateways and observability. Open source technologies that support implementing these capabilities are also outlined. The document concludes that microservices are the future of distributed systems and enterprises should implement solutions from first principles using inspiration from internet companies.

enterprise softwarecloud computinggilt
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices

This document provides an introduction to microservices, including: - The benefits of microservices compared to monolithic architecture like independent deployability and scalability. - Microservices are small, independently deployable services that work together and are modeled around business domains. - Implementing microservices requires automation, high cohesion, loose coupling, and stable APIs. - Potential downsides include increased complexity in testing, monitoring, and operations. Microservices are best suited to problems of scale.

microservicesdesignarchitecture
Going Serverless with OpenWhisk
Going Serverless with OpenWhiskGoing Serverless with OpenWhisk
Going Serverless with OpenWhisk

Presentation on Serverless and OpenWhisk at Haifa Cloud meetup, 7/2/2017 https://www.meetup.com/Haifa-Cloud/events/236843362/

openwhiskserverlessmeetup
MICROSERVICES TO MAP WORKFLOW TO
Microservices Platform
API
Event Bus
REST/
JSON
APIUI
Cache
Oracle
Coherence
EventHub CS
Apache
Kafka
NodeJS &
Express in
ACCS
On premises
Tweet
Board
Validate
Tweet API
Java SE
REST/
JSON Enrich
Tweet
Java SE
CONFIGURE THE IFTTT RECIPE
CONFIGURE THE IFTTT RECIPE
#oraclecode
API
EventBri
CHOREOGRAPHED WORKFLOW
#hashtag
Microservices Platform
API
API
API
EventBridge
Event Bus
APIUI
Cache
Oracle
Coherence
EventHub CS Apache
Kafka
On premises
TweetBoard
Validate
Tweet
EventBridge
API Enrich
Tweet
Workflow
Launcher

Recommended for you

Serverless brewbox
Serverless   brewboxServerless   brewbox
Serverless brewbox

Lino Telera gave a presentation on serverless computing. He began with introductions and background. The presentation covered serverless concepts like Function as a Service, demonstrated building a simple microservice using AWS Lambda that interacts with S3, and discussed integrating functions with services like S3 using Boto. It also showed how functions can be called from devices using skills and discussed running serverless on-premise using OpenFaaS or Pivotal Container Service. The presentation concluded with a Q&A and thanks to sponsors.

serverlesslinoproject
The Application Server Platform of the Future - Container & Cloud Native and ...
The Application Server Platform of the Future - Container & Cloud Native and ...The Application Server Platform of the Future - Container & Cloud Native and ...
The Application Server Platform of the Future - Container & Cloud Native and ...

New architecture patterns are rapidly influencing many organizations. The march to the cloud is taking place. DevOps and microservices for true agility and containers as vehicle for delivery, testing and management. During Oracle OpenWorld 2017 - Oracle presented its vision and roadmap in the area of cloud native computing (which is based on container native) and announced its application server platform (container management runtime) of the future. This presentation summarizes that picture painted by Oracle.

kubernetesdockermicroservices
.NET microservices with Azure Service Fabric
.NET microservices with Azure Service Fabric.NET microservices with Azure Service Fabric
.NET microservices with Azure Service Fabric

“Microservices” have become a trendy development strategy. Hosting and running such services used to be pretty painful... but here comes Service Fabric! Let’s take a closer look at this platform, its different development models and all the features it offers, and not only for microservices!

microservicesazure.net
ROUTING SLIP PUBLISHED BY WORKFLOW LAUNCHER
CHOREOGRAPHED WORKFLOW
#hashtag
Microservices Platform
API
API
API
EventBridge
REST/
JSON
Event Bus
NodeJS &
Express
REST/
JSON
NodeJS &
Express in
ACCS
APIUI
Cache
Oracle
Coherence
EventHub CS
Apache
Kafka
NodeJS &
Express in
ACCS
On premises
TweetBoard
Validate
Tweet
EventBridge
REST/
JSON
API
REST/
JSON
Enrich
Tweet
Workflow
Launcher
NodeJS &
Express
Event Bus
MICROSERVICE CHOREOGRAPHY TOPOLOGY
EventBridge
Workflow
Launcher
Tweet
Validator
Tweet
Enricher
Tweet
Board
Cache
Cloud Service
EventHub CS
EventBridge
App Container CS
Event Bus
LOGGING IN THE MICROSERVICE PLATFORM
EventBridge
Workflow
Launcher
Tweet
Validator
Tweet
Enricher
Tweet
Board
Cache
EventHub CS
EventBridge
App Container CS
Log Analytics
Oracle
Management Cloud
Logger

Recommended for you

Building Services with WSO2 Application Server and WSO2 Microservices Framewo...
Building Services with WSO2 Application Server and WSO2 Microservices Framewo...Building Services with WSO2 Application Server and WSO2 Microservices Framewo...
Building Services with WSO2 Application Server and WSO2 Microservices Framewo...

This document summarizes a presentation about building microservices with WSO2 technologies. It introduces the microservices architecture and framework MSF4J, which allows developing microservices in Java using annotations. MSF4J provides high performance, metrics collection, and integration with Kubernetes for deployment. Hands-on examples are provided to demonstrate creating a sample stock quote microservice with MSF4J and deploying it to Kubernetes. The presentation also covers the WSO2 Application Server and its transition to being based on Tomcat rather than Carbon for improved performance and classloading.

microservicewso2con eu 2016wso2con
Kubernetes Infra 2.0
Kubernetes Infra 2.0Kubernetes Infra 2.0
Kubernetes Infra 2.0

The document outlines an infrastructure 2.0 approach based on cloud native technologies. It advocates for infrastructure as code, test-driven deployments, open source tools, and seamless developer workflows. The approach uses microservices, containers, service meshes, and orchestration with Kubernetes. It recommends tools like Terraform, Jenkins, Kubernetes, Istio, Prometheus, Elasticsearch and Airflow for infrastructure provisioning, CI/CD, container management, service mesh, monitoring, logging, and job scheduling. It also discusses Docker, data pipelines, and processes for onboarding new applications.

kubernetesmicroservicesdevops
App fabric introduction
App fabric introductionApp fabric introduction
App fabric introduction

Microsoft AppFabric provides services for building and managing composite applications at scale, including workflows, caching, and hosting services. It allows sharing of data and workflows across machines. Windows Server AppFabric provides service and workflow management capabilities while Azure AppFabric focuses on access control and a service bus in the cloud. The presentation discussed architectural choices using these technologies like caching sessions, hosting services, and a real-world example architecture integrating caching, hosting, and messaging.

azuresdnappfabric
DEMO ORACLE MANAGEMENT CLOUD LOG ANALYTICS
SYSTEM EVENTS – METRICS AND LOGGING
MAIN TECHNICAL CHALLENGES
• Dockerize NodeJS applications
• Run Docker container images in Kubernetes cluster
• Pass environment variables and disk volumes
• Expose services through ports
• Link NodeJS applications in Kubernetes to Kafka Cluster in
VirtualBox
• Producing to and consuming from Topic
• Kafka host needs to be in /etc/hosts file in Node.JS Docker Container
• Leverage in-cloud cache from Kubernetes Pod members
• Share workflow instance state across microservices
• Create two-way EventBridge between local microservices and cloud
SUMMARY
• Microservices are about rapid rollout of scalable, available functionality
• (session) Stateless, Continuous deployment, horizontal scale out
• One team is owner of a microservice and can evolve and deploy independently
• Microservice is understandable and manageable
• Microservices contain everything that is special for their implementation
• External dependencies only on generic platform capabilities and public APIs
• Microservices expose a public API
• REST resources & operations and events (consumed and produced)
• Decoupled, Event-based interaction is crucial for microservices
• Cache synchronization, Monitoring, CQRS, Event Sourcing, Choreographed workflows
• The microservices platform should provide an Event Bus capability
• Apache Kafka is a proven, popular Event Bus implementation – available in premises
and in the cloud (for example through Oracle Event Hub CS)
• Blog: technology.amis.nl
• Email: lucas.jellema@amis.nl
• : lucasjellema
• : lucas-jellema
• : www.amis.nl, info@amis.nl
+31 306016000
Edisonbaan 15,
Nieuwegein
Happy
Coding!
Source Code:
https://github.com/lucasjellema/microservice-choreography-tweetboard

Recommended for you

Microservices deck
Microservices deckMicroservices deck
Microservices deck

This document discusses building event-driven, fault-tolerant microservices. It begins by discussing lessons learned from SOA architecture and defining microservices. It emphasizes that microservices need to be reactive and message-driven to achieve loose coupling and fault tolerance. The document then outlines challenges in implementing microservices at scale before proposing a design using Spring Boot, Kafka, Docker, and Elastic Stack. It provides an in-depth look at these components and how they address scalability, isolation, fault tolerance and monitoring of microservices.

microservices
Rami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with DockerRami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with Docker

The document discusses converting a monolithic Node.js application into microservices and deploying them using Docker. It begins by defining microservices and their benefits. It then describes converting a sample pizza ordering application into independent microservices for handling messages, serving the frontend, and providing an API. Next, it covers patterns for networking microservices, including using an API gateway. It concludes by demonstrating how to deploy the microservices to Docker containers and use an orchestration tool like Kubernetes to manage them.

developmentprogrammationwaq17
WSO2 Workshop Sydney 2016 - Microservices
WSO2 Workshop Sydney 2016 - MicroservicesWSO2 Workshop Sydney 2016 - Microservices
WSO2 Workshop Sydney 2016 - Microservices

This document provides an agenda and overview of a workshop on microservices architecture. The agenda includes introductions to microservices architecture, WSO2 MSF4J, Kubernetes/Docker, and demonstrating MSF4J deployment with Kubernetes. It then discusses microservices architecture principles, inner and outer architecture, and the features and implementation of WSO2 MSF4J, a lightweight Java microservices framework. It covers developing microservices with MSF4J, deployment types, analytics and monitoring, security, and examples. The document concludes with discussions on production deployment with Kubernetes and Docker, and the current and future states of the WSO2 Application Server.

More Related Content

What's hot

What is the Oracle PaaS Cloud for Developers (Oracle Cloud Day, The Netherlan...
What is the Oracle PaaS Cloud for Developers (Oracle Cloud Day, The Netherlan...What is the Oracle PaaS Cloud for Developers (Oracle Cloud Day, The Netherlan...
What is the Oracle PaaS Cloud for Developers (Oracle Cloud Day, The Netherlan...
Lucas Jellema
 
Overview of Oracle Product Portfolio (focus on Platform) - April, 2017
Overview of Oracle Product Portfolio (focus on Platform) - April, 2017Overview of Oracle Product Portfolio (focus on Platform) - April, 2017
Overview of Oracle Product Portfolio (focus on Platform) - April, 2017
Lucas Jellema
 
REST - Why, When and How? at AMIS25
REST - Why, When and How? at AMIS25REST - Why, When and How? at AMIS25
REST - Why, When and How? at AMIS25
Jon Petter Hjulstad
 
AMIS Oracle OpenWorld 2015 Review – part 3- PaaS Database, Integration, Ident...
AMIS Oracle OpenWorld 2015 Review – part 3- PaaS Database, Integration, Ident...AMIS Oracle OpenWorld 2015 Review – part 3- PaaS Database, Integration, Ident...
AMIS Oracle OpenWorld 2015 Review – part 3- PaaS Database, Integration, Ident...
Getting value from IoT, Integration and Data Analytics
 
Review Oracle OpenWorld 2015 - Overview, Main themes, Announcements and Future
Review Oracle OpenWorld 2015 - Overview, Main themes, Announcements and FutureReview Oracle OpenWorld 2015 - Overview, Main themes, Announcements and Future
Review Oracle OpenWorld 2015 - Overview, Main themes, Announcements and Future
Lucas Jellema
 
AMIS Oracle OpenWorld 2015 Review – part 2- Hardware & IaaS and PaaS Cloud Fo...
AMIS Oracle OpenWorld 2015 Review – part 2- Hardware & IaaS and PaaS Cloud Fo...AMIS Oracle OpenWorld 2015 Review – part 2- Hardware & IaaS and PaaS Cloud Fo...
AMIS Oracle OpenWorld 2015 Review – part 2- Hardware & IaaS and PaaS Cloud Fo...
Getting value from IoT, Integration and Data Analytics
 
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
 
Systems on the edge - your stepping stones into Oracle Public PaaS Cloud - AM...
Systems on the edge - your stepping stones into Oracle Public PaaS Cloud - AM...Systems on the edge - your stepping stones into Oracle Public PaaS Cloud - AM...
Systems on the edge - your stepping stones into Oracle Public PaaS Cloud - AM...
Lucas Jellema
 
AMIS Oracle OpenWorld 2015 Review – part 4- PaaS Application Development, Jav...
AMIS Oracle OpenWorld 2015 Review – part 4- PaaS Application Development, Jav...AMIS Oracle OpenWorld 2015 Review – part 4- PaaS Application Development, Jav...
AMIS Oracle OpenWorld 2015 Review – part 4- PaaS Application Development, Jav...
Getting value from IoT, Integration and Data Analytics
 
What is Kafka & why is it Important? (UKOUG Tech17, Birmingham, UK - December...
What is Kafka & why is it Important? (UKOUG Tech17, Birmingham, UK - December...What is Kafka & why is it Important? (UKOUG Tech17, Birmingham, UK - December...
What is Kafka & why is it Important? (UKOUG Tech17, Birmingham, UK - December...
Lucas Jellema
 
Jelastic DevOps Platform Product Overview for Service Providers
Jelastic DevOps Platform Product Overview for Service ProvidersJelastic DevOps Platform Product Overview for Service Providers
Jelastic DevOps Platform Product Overview for Service Providers
Jelastic Multi-Cloud PaaS
 
Keynote Oracle Fusion Middleware Summit_2020
Keynote Oracle Fusion Middleware Summit_2020Keynote Oracle Fusion Middleware Summit_2020
Keynote Oracle Fusion Middleware Summit_2020
Michel Schildmeijer
 
Integrating Alfresco @ Scale (via event-driven micro-services)
Integrating Alfresco @ Scale (via event-driven micro-services)Integrating Alfresco @ Scale (via event-driven micro-services)
Integrating Alfresco @ Scale (via event-driven micro-services)
J V
 
AMIS Beyond the Horizon - High density deployments using weblogic multitenancy
AMIS Beyond the Horizon - High density deployments using weblogic multitenancyAMIS Beyond the Horizon - High density deployments using weblogic multitenancy
AMIS Beyond the Horizon - High density deployments using weblogic multitenancy
Jaap Poot
 
Oracle SOA suite and Coherence dehydration
Oracle SOA suite and  Coherence dehydrationOracle SOA suite and  Coherence dehydration
Oracle SOA suite and Coherence dehydration
Michel Schildmeijer
 
Camel oneactivemq posta-final
Camel oneactivemq posta-finalCamel oneactivemq posta-final
Camel oneactivemq posta-final
Christian Posta
 
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
 
Introduction into Docker Containers, the Oracle Platform and the Oracle (Nati...
Introduction into Docker Containers, the Oracle Platform and the Oracle (Nati...Introduction into Docker Containers, the Oracle Platform and the Oracle (Nati...
Introduction into Docker Containers, the Oracle Platform and the Oracle (Nati...
Lucas Jellema
 
Oracle application container cloud back end integration using node final
Oracle application container cloud back end integration using node finalOracle application container cloud back end integration using node final
Oracle application container cloud back end integration using node final
Getting value from IoT, Integration and Data Analytics
 
Jelastic Overview: Technical and Business Benefits
Jelastic Overview: Technical and Business BenefitsJelastic Overview: Technical and Business Benefits
Jelastic Overview: Technical and Business Benefits
Tetiana Fydorenchyk
 

What's hot (20)

What is the Oracle PaaS Cloud for Developers (Oracle Cloud Day, The Netherlan...
What is the Oracle PaaS Cloud for Developers (Oracle Cloud Day, The Netherlan...What is the Oracle PaaS Cloud for Developers (Oracle Cloud Day, The Netherlan...
What is the Oracle PaaS Cloud for Developers (Oracle Cloud Day, The Netherlan...
 
Overview of Oracle Product Portfolio (focus on Platform) - April, 2017
Overview of Oracle Product Portfolio (focus on Platform) - April, 2017Overview of Oracle Product Portfolio (focus on Platform) - April, 2017
Overview of Oracle Product Portfolio (focus on Platform) - April, 2017
 
REST - Why, When and How? at AMIS25
REST - Why, When and How? at AMIS25REST - Why, When and How? at AMIS25
REST - Why, When and How? at AMIS25
 
AMIS Oracle OpenWorld 2015 Review – part 3- PaaS Database, Integration, Ident...
AMIS Oracle OpenWorld 2015 Review – part 3- PaaS Database, Integration, Ident...AMIS Oracle OpenWorld 2015 Review – part 3- PaaS Database, Integration, Ident...
AMIS Oracle OpenWorld 2015 Review – part 3- PaaS Database, Integration, Ident...
 
Review Oracle OpenWorld 2015 - Overview, Main themes, Announcements and Future
Review Oracle OpenWorld 2015 - Overview, Main themes, Announcements and FutureReview Oracle OpenWorld 2015 - Overview, Main themes, Announcements and Future
Review Oracle OpenWorld 2015 - Overview, Main themes, Announcements and Future
 
AMIS Oracle OpenWorld 2015 Review – part 2- Hardware & IaaS and PaaS Cloud Fo...
AMIS Oracle OpenWorld 2015 Review – part 2- Hardware & IaaS and PaaS Cloud Fo...AMIS Oracle OpenWorld 2015 Review – part 2- Hardware & IaaS and PaaS Cloud Fo...
AMIS Oracle OpenWorld 2015 Review – part 2- Hardware & IaaS and PaaS Cloud Fo...
 
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
 
Systems on the edge - your stepping stones into Oracle Public PaaS Cloud - AM...
Systems on the edge - your stepping stones into Oracle Public PaaS Cloud - AM...Systems on the edge - your stepping stones into Oracle Public PaaS Cloud - AM...
Systems on the edge - your stepping stones into Oracle Public PaaS Cloud - AM...
 
AMIS Oracle OpenWorld 2015 Review – part 4- PaaS Application Development, Jav...
AMIS Oracle OpenWorld 2015 Review – part 4- PaaS Application Development, Jav...AMIS Oracle OpenWorld 2015 Review – part 4- PaaS Application Development, Jav...
AMIS Oracle OpenWorld 2015 Review – part 4- PaaS Application Development, Jav...
 
What is Kafka & why is it Important? (UKOUG Tech17, Birmingham, UK - December...
What is Kafka & why is it Important? (UKOUG Tech17, Birmingham, UK - December...What is Kafka & why is it Important? (UKOUG Tech17, Birmingham, UK - December...
What is Kafka & why is it Important? (UKOUG Tech17, Birmingham, UK - December...
 
Jelastic DevOps Platform Product Overview for Service Providers
Jelastic DevOps Platform Product Overview for Service ProvidersJelastic DevOps Platform Product Overview for Service Providers
Jelastic DevOps Platform Product Overview for Service Providers
 
Keynote Oracle Fusion Middleware Summit_2020
Keynote Oracle Fusion Middleware Summit_2020Keynote Oracle Fusion Middleware Summit_2020
Keynote Oracle Fusion Middleware Summit_2020
 
Integrating Alfresco @ Scale (via event-driven micro-services)
Integrating Alfresco @ Scale (via event-driven micro-services)Integrating Alfresco @ Scale (via event-driven micro-services)
Integrating Alfresco @ Scale (via event-driven micro-services)
 
AMIS Beyond the Horizon - High density deployments using weblogic multitenancy
AMIS Beyond the Horizon - High density deployments using weblogic multitenancyAMIS Beyond the Horizon - High density deployments using weblogic multitenancy
AMIS Beyond the Horizon - High density deployments using weblogic multitenancy
 
Oracle SOA suite and Coherence dehydration
Oracle SOA suite and  Coherence dehydrationOracle SOA suite and  Coherence dehydration
Oracle SOA suite and Coherence dehydration
 
Camel oneactivemq posta-final
Camel oneactivemq posta-finalCamel oneactivemq posta-final
Camel oneactivemq posta-final
 
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
 
Introduction into Docker Containers, the Oracle Platform and the Oracle (Nati...
Introduction into Docker Containers, the Oracle Platform and the Oracle (Nati...Introduction into Docker Containers, the Oracle Platform and the Oracle (Nati...
Introduction into Docker Containers, the Oracle Platform and the Oracle (Nati...
 
Oracle application container cloud back end integration using node final
Oracle application container cloud back end integration using node finalOracle application container cloud back end integration using node final
Oracle application container cloud back end integration using node final
 
Jelastic Overview: Technical and Business Benefits
Jelastic Overview: Technical and Business BenefitsJelastic Overview: Technical and Business Benefits
Jelastic Overview: Technical and Business Benefits
 

Similar to Event Bus as Backbone for Decoupled Microservice Choreography (Oracle Code, April 20th 2017, London, UK)

Event Bus as Backbone for Decoupled Microservice Choreography - Lecture and W...
Event Bus as Backbone for Decoupled Microservice Choreography - Lecture and W...Event Bus as Backbone for Decoupled Microservice Choreography - Lecture and W...
Event Bus as Backbone for Decoupled Microservice Choreography - Lecture and W...
Lucas Jellema
 
Business and IT agility through DevOps and microservice architecture powered ...
Business and IT agility through DevOps and microservice architecture powered ...Business and IT agility through DevOps and microservice architecture powered ...
Business and IT agility through DevOps and microservice architecture powered ...
Lucas Jellema
 
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
 
Microservices in the Enterprise
Microservices in the Enterprise Microservices in the Enterprise
Microservices in the Enterprise
Jesus Rodriguez
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
Paulo Gandra de Sousa
 
Going Serverless with OpenWhisk
Going Serverless with OpenWhiskGoing Serverless with OpenWhisk
Going Serverless with OpenWhisk
Alex Glikson
 
Serverless brewbox
Serverless   brewboxServerless   brewbox
Serverless brewbox
Lino Telera
 
The Application Server Platform of the Future - Container & Cloud Native and ...
The Application Server Platform of the Future - Container & Cloud Native and ...The Application Server Platform of the Future - Container & Cloud Native and ...
The Application Server Platform of the Future - Container & Cloud Native and ...
Lucas Jellema
 
.NET microservices with Azure Service Fabric
.NET microservices with Azure Service Fabric.NET microservices with Azure Service Fabric
.NET microservices with Azure Service Fabric
Davide Benvegnù
 
Building Services with WSO2 Application Server and WSO2 Microservices Framewo...
Building Services with WSO2 Application Server and WSO2 Microservices Framewo...Building Services with WSO2 Application Server and WSO2 Microservices Framewo...
Building Services with WSO2 Application Server and WSO2 Microservices Framewo...
Sagara Gunathunga
 
Kubernetes Infra 2.0
Kubernetes Infra 2.0Kubernetes Infra 2.0
Kubernetes Infra 2.0
Deepak Sood
 
App fabric introduction
App fabric introductionApp fabric introduction
App fabric introduction
Dennis van der Stelt
 
Microservices deck
Microservices deckMicroservices deck
Microservices deck
Raja Chattopadhyay
 
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
 
WSO2 Workshop Sydney 2016 - Microservices
WSO2 Workshop Sydney 2016 - MicroservicesWSO2 Workshop Sydney 2016 - Microservices
WSO2 Workshop Sydney 2016 - Microservices
Dassana Wijesekara
 
Dutch Oracle Architects Platform - Reviewing Oracle OpenWorld 2017 and New Tr...
Dutch Oracle Architects Platform - Reviewing Oracle OpenWorld 2017 and New Tr...Dutch Oracle Architects Platform - Reviewing Oracle OpenWorld 2017 and New Tr...
Dutch Oracle Architects Platform - Reviewing Oracle OpenWorld 2017 and New Tr...
Lucas Jellema
 
Mobility and federation of Cloud computing
Mobility and federation of Cloud computingMobility and federation of Cloud computing
Mobility and federation of Cloud computing
David Wallom
 
Cloud Native Application Development
Cloud Native Application DevelopmentCloud Native Application Development
Cloud Native Application Development
Siva Rama Krishna Chunduru
 
CloudStack Overview
CloudStack OverviewCloudStack Overview
CloudStack Overview
sedukull
 

Similar to Event Bus as Backbone for Decoupled Microservice Choreography (Oracle Code, April 20th 2017, London, UK) (20)

Event Bus as Backbone for Decoupled Microservice Choreography - Lecture and W...
Event Bus as Backbone for Decoupled Microservice Choreography - Lecture and W...Event Bus as Backbone for Decoupled Microservice Choreography - Lecture and W...
Event Bus as Backbone for Decoupled Microservice Choreography - Lecture and W...
 
Business and IT agility through DevOps and microservice architecture powered ...
Business and IT agility through DevOps and microservice architecture powered ...Business and IT agility through DevOps and microservice architecture powered ...
Business and IT agility through DevOps and microservice architecture powered ...
 
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?
 
Microservices in the Enterprise
Microservices in the Enterprise Microservices in the Enterprise
Microservices in the Enterprise
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Going Serverless with OpenWhisk
Going Serverless with OpenWhiskGoing Serverless with OpenWhisk
Going Serverless with OpenWhisk
 
Serverless brewbox
Serverless   brewboxServerless   brewbox
Serverless brewbox
 
The Application Server Platform of the Future - Container & Cloud Native and ...
The Application Server Platform of the Future - Container & Cloud Native and ...The Application Server Platform of the Future - Container & Cloud Native and ...
The Application Server Platform of the Future - Container & Cloud Native and ...
 
.NET microservices with Azure Service Fabric
.NET microservices with Azure Service Fabric.NET microservices with Azure Service Fabric
.NET microservices with Azure Service Fabric
 
Building Services with WSO2 Application Server and WSO2 Microservices Framewo...
Building Services with WSO2 Application Server and WSO2 Microservices Framewo...Building Services with WSO2 Application Server and WSO2 Microservices Framewo...
Building Services with WSO2 Application Server and WSO2 Microservices Framewo...
 
Kubernetes Infra 2.0
Kubernetes Infra 2.0Kubernetes Infra 2.0
Kubernetes Infra 2.0
 
App fabric introduction
App fabric introductionApp fabric introduction
App fabric introduction
 
Microservices deck
Microservices deckMicroservices deck
Microservices deck
 
Rami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with DockerRami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with Docker
 
WSO2 Workshop Sydney 2016 - Microservices
WSO2 Workshop Sydney 2016 - MicroservicesWSO2 Workshop Sydney 2016 - Microservices
WSO2 Workshop Sydney 2016 - Microservices
 
Dutch Oracle Architects Platform - Reviewing Oracle OpenWorld 2017 and New Tr...
Dutch Oracle Architects Platform - Reviewing Oracle OpenWorld 2017 and New Tr...Dutch Oracle Architects Platform - Reviewing Oracle OpenWorld 2017 and New Tr...
Dutch Oracle Architects Platform - Reviewing Oracle OpenWorld 2017 and New Tr...
 
Mobility and federation of Cloud computing
Mobility and federation of Cloud computingMobility and federation of Cloud computing
Mobility and federation of Cloud computing
 
Cloud Native Application Development
Cloud Native Application DevelopmentCloud Native Application Development
Cloud Native Application Development
 
CloudStack Overview
CloudStack OverviewCloudStack Overview
CloudStack Overview
 

More from Lucas Jellema

Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...
Lucas Jellema
 
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Lucas Jellema
 
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lucas Jellema
 
Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...
Lucas Jellema
 
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
Lucas Jellema
 
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
Lucas Jellema
 
Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!
Lucas Jellema
 
IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)
Lucas Jellema
 
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Lucas Jellema
 
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Lucas Jellema
 
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Lucas Jellema
 
Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...
Lucas Jellema
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
Lucas Jellema
 
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Lucas Jellema
 
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Lucas Jellema
 
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
Lucas Jellema
 
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Lucas Jellema
 
Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)
Lucas Jellema
 
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Lucas Jellema
 
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Lucas Jellema
 

More from Lucas Jellema (20)

Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...
 
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
 
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
 
Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...
 
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
 
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
 
Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!
 
IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)
 
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
 
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
 
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
 
Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
 
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
 
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
 
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
 
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
 
Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)
 
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
 
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
 

Recently uploaded

Independence Day Hasn’t Always Been a U.S. Holiday.pdf
Independence Day Hasn’t Always Been a U.S. Holiday.pdfIndependence Day Hasn’t Always Been a U.S. Holiday.pdf
Independence Day Hasn’t Always Been a U.S. Holiday.pdf
Livetecs LLC
 
React vs Next js: Which is Better for Web Development? - Semiosis Software Pr...
React vs Next js: Which is Better for Web Development? - Semiosis Software Pr...React vs Next js: Which is Better for Web Development? - Semiosis Software Pr...
React vs Next js: Which is Better for Web Development? - Semiosis Software Pr...
Semiosis Software Private Limited
 
ENISA Threat Landscape 2023 documentation
ENISA Threat Landscape 2023 documentationENISA Threat Landscape 2023 documentation
ENISA Threat Landscape 2023 documentation
sofiafernandezon
 
active-directory-auditing-solution (2).pptx
active-directory-auditing-solution (2).pptxactive-directory-auditing-solution (2).pptx
active-directory-auditing-solution (2).pptx
sudsdeep
 
dachnug51 - All you ever wanted to know about domino licensing.pdf
dachnug51 - All you ever wanted to know about domino licensing.pdfdachnug51 - All you ever wanted to know about domino licensing.pdf
dachnug51 - All you ever wanted to know about domino licensing.pdf
DNUG e.V.
 
React Native vs Flutter - SSTech System
React Native vs Flutter  - SSTech SystemReact Native vs Flutter  - SSTech System
React Native vs Flutter - SSTech System
SSTech System
 
What is OCR Technology and How to Extract Text from Any Image for Free
What is OCR Technology and How to Extract Text from Any Image for FreeWhat is OCR Technology and How to Extract Text from Any Image for Free
What is OCR Technology and How to Extract Text from Any Image for Free
TwisterTools
 
Cultural Shifts: Embracing DevOps for Organizational Transformation
Cultural Shifts: Embracing DevOps for Organizational TransformationCultural Shifts: Embracing DevOps for Organizational Transformation
Cultural Shifts: Embracing DevOps for Organizational Transformation
Mindfire Solution
 
WhatsApp Tracker - Tracking WhatsApp to Boost Online Safety.pdf
WhatsApp Tracker -  Tracking WhatsApp to Boost Online Safety.pdfWhatsApp Tracker -  Tracking WhatsApp to Boost Online Safety.pdf
WhatsApp Tracker - Tracking WhatsApp to Boost Online Safety.pdf
onemonitarsoftware
 
CViewSurvey Digitech Pvt Ltd that works on a proven C.A.A.G. model.
CViewSurvey Digitech Pvt Ltd that  works on a proven C.A.A.G. model.CViewSurvey Digitech Pvt Ltd that  works on a proven C.A.A.G. model.
CViewSurvey Digitech Pvt Ltd that works on a proven C.A.A.G. model.
bhatinidhi2001
 
Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...
Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...
Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...
onemonitarsoftware
 
NYC 26-Jun-2024 Combined Presentations.pdf
NYC 26-Jun-2024 Combined Presentations.pdfNYC 26-Jun-2024 Combined Presentations.pdf
NYC 26-Jun-2024 Combined Presentations.pdf
AUGNYC
 
BITCOIN HEIST RANSOMEWARE ATTACK PREDICTION
BITCOIN HEIST RANSOMEWARE ATTACK PREDICTIONBITCOIN HEIST RANSOMEWARE ATTACK PREDICTION
BITCOIN HEIST RANSOMEWARE ATTACK PREDICTION
ssuser2b426d1
 
Development of Chatbot Using AI\ML Technologies
Development of Chatbot Using AI\ML TechnologiesDevelopment of Chatbot Using AI\ML Technologies
Development of Chatbot Using AI\ML Technologies
MaisnamLuwangPibarel
 
FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)
FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)
FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)
Roshan Dwivedi
 
COMPSAC 2024 D&I Panel: Charting a Course for Equity: Strategies for Overcomi...
COMPSAC 2024 D&I Panel: Charting a Course for Equity: Strategies for Overcomi...COMPSAC 2024 D&I Panel: Charting a Course for Equity: Strategies for Overcomi...
COMPSAC 2024 D&I Panel: Charting a Course for Equity: Strategies for Overcomi...
Hironori Washizaki
 
Prada Group Reports Strong Growth in First Quarter …
Prada Group Reports Strong Growth in First Quarter …Prada Group Reports Strong Growth in First Quarter …
Prada Group Reports Strong Growth in First Quarter …
908dutch
 
Safe Work Permit Management Software for Hot Work Permits
Safe Work Permit Management Software for Hot Work PermitsSafe Work Permit Management Software for Hot Work Permits
Safe Work Permit Management Software for Hot Work Permits
sheqnetworkmarketing
 
dachnug51 - HCL Sametime 12 as a Software Appliance.pdf
dachnug51 - HCL Sametime 12 as a Software Appliance.pdfdachnug51 - HCL Sametime 12 as a Software Appliance.pdf
dachnug51 - HCL Sametime 12 as a Software Appliance.pdf
DNUG e.V.
 
Software development... for all? (keynote at ICSOFT'2024)
Software development... for all? (keynote at ICSOFT'2024)Software development... for all? (keynote at ICSOFT'2024)
Software development... for all? (keynote at ICSOFT'2024)
miso_uam
 

Recently uploaded (20)

Independence Day Hasn’t Always Been a U.S. Holiday.pdf
Independence Day Hasn’t Always Been a U.S. Holiday.pdfIndependence Day Hasn’t Always Been a U.S. Holiday.pdf
Independence Day Hasn’t Always Been a U.S. Holiday.pdf
 
React vs Next js: Which is Better for Web Development? - Semiosis Software Pr...
React vs Next js: Which is Better for Web Development? - Semiosis Software Pr...React vs Next js: Which is Better for Web Development? - Semiosis Software Pr...
React vs Next js: Which is Better for Web Development? - Semiosis Software Pr...
 
ENISA Threat Landscape 2023 documentation
ENISA Threat Landscape 2023 documentationENISA Threat Landscape 2023 documentation
ENISA Threat Landscape 2023 documentation
 
active-directory-auditing-solution (2).pptx
active-directory-auditing-solution (2).pptxactive-directory-auditing-solution (2).pptx
active-directory-auditing-solution (2).pptx
 
dachnug51 - All you ever wanted to know about domino licensing.pdf
dachnug51 - All you ever wanted to know about domino licensing.pdfdachnug51 - All you ever wanted to know about domino licensing.pdf
dachnug51 - All you ever wanted to know about domino licensing.pdf
 
React Native vs Flutter - SSTech System
React Native vs Flutter  - SSTech SystemReact Native vs Flutter  - SSTech System
React Native vs Flutter - SSTech System
 
What is OCR Technology and How to Extract Text from Any Image for Free
What is OCR Technology and How to Extract Text from Any Image for FreeWhat is OCR Technology and How to Extract Text from Any Image for Free
What is OCR Technology and How to Extract Text from Any Image for Free
 
Cultural Shifts: Embracing DevOps for Organizational Transformation
Cultural Shifts: Embracing DevOps for Organizational TransformationCultural Shifts: Embracing DevOps for Organizational Transformation
Cultural Shifts: Embracing DevOps for Organizational Transformation
 
WhatsApp Tracker - Tracking WhatsApp to Boost Online Safety.pdf
WhatsApp Tracker -  Tracking WhatsApp to Boost Online Safety.pdfWhatsApp Tracker -  Tracking WhatsApp to Boost Online Safety.pdf
WhatsApp Tracker - Tracking WhatsApp to Boost Online Safety.pdf
 
CViewSurvey Digitech Pvt Ltd that works on a proven C.A.A.G. model.
CViewSurvey Digitech Pvt Ltd that  works on a proven C.A.A.G. model.CViewSurvey Digitech Pvt Ltd that  works on a proven C.A.A.G. model.
CViewSurvey Digitech Pvt Ltd that works on a proven C.A.A.G. model.
 
Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...
Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...
Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...
 
NYC 26-Jun-2024 Combined Presentations.pdf
NYC 26-Jun-2024 Combined Presentations.pdfNYC 26-Jun-2024 Combined Presentations.pdf
NYC 26-Jun-2024 Combined Presentations.pdf
 
BITCOIN HEIST RANSOMEWARE ATTACK PREDICTION
BITCOIN HEIST RANSOMEWARE ATTACK PREDICTIONBITCOIN HEIST RANSOMEWARE ATTACK PREDICTION
BITCOIN HEIST RANSOMEWARE ATTACK PREDICTION
 
Development of Chatbot Using AI\ML Technologies
Development of Chatbot Using AI\ML TechnologiesDevelopment of Chatbot Using AI\ML Technologies
Development of Chatbot Using AI\ML Technologies
 
FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)
FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)
FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)
 
COMPSAC 2024 D&I Panel: Charting a Course for Equity: Strategies for Overcomi...
COMPSAC 2024 D&I Panel: Charting a Course for Equity: Strategies for Overcomi...COMPSAC 2024 D&I Panel: Charting a Course for Equity: Strategies for Overcomi...
COMPSAC 2024 D&I Panel: Charting a Course for Equity: Strategies for Overcomi...
 
Prada Group Reports Strong Growth in First Quarter …
Prada Group Reports Strong Growth in First Quarter …Prada Group Reports Strong Growth in First Quarter …
Prada Group Reports Strong Growth in First Quarter …
 
Safe Work Permit Management Software for Hot Work Permits
Safe Work Permit Management Software for Hot Work PermitsSafe Work Permit Management Software for Hot Work Permits
Safe Work Permit Management Software for Hot Work Permits
 
dachnug51 - HCL Sametime 12 as a Software Appliance.pdf
dachnug51 - HCL Sametime 12 as a Software Appliance.pdfdachnug51 - HCL Sametime 12 as a Software Appliance.pdf
dachnug51 - HCL Sametime 12 as a Software Appliance.pdf
 
Software development... for all? (keynote at ICSOFT'2024)
Software development... for all? (keynote at ICSOFT'2024)Software development... for all? (keynote at ICSOFT'2024)
Software development... for all? (keynote at ICSOFT'2024)
 

Event Bus as Backbone for Decoupled Microservice Choreography (Oracle Code, April 20th 2017, London, UK)

  • 1. EVENT BUS AS BACKBONE FOR DECOUPLED MICROSERVICE CHOREOGRAPHY Lucas Jellema (CTO AMIS & Oracle ACE Director) 20th April 2017, Oracle Code, London, UK
  • 2. AGENDA • Introduction of microservices - objectives, traits, implementation • The making of a microservice (demo) • The microservices platform - generic capabilities • Using events for decoupled interaction and workflow choreography • Introduction of Apache Kafka for implementing the Event Bus • Microservices and Event Bus in a hybrid world – cross on-premises and clouds • Implementing a multi-microservice workflow with event based choreography • Design, architecture, implementation and live demo • Music maestro – demonstrating event based workflow choreography by microservices • Logging on the microservices platform
  • 3. SOURCE CODE • https://github.com/lucasjellema/microservice-choreography-tweetboard • NodeJS & Java code • Kafka Producer & Consumer • Docker build files • Kubernetes YAML
  • 4. MICROSERVICE OBJECTIVES (BECAUSE OF ENTERPRISE OBJECTIVES) • Flexible, agile (Dev) • Functionality evolves rapidly with little effort • Easy quick rollout • Low impact • Manageable Non Functionally (Ops) • Scalable – handle flexible workload (horizontal scaleout) • Available – deal with failing nodes • Comprehendable • Dependencies, Impact, Implementation, deployment, operations • Ownership (culture, organization, process) • One team can do functional and technical evolution and deployment continuously and independently
  • 5. MICROSERVICES HOW • Extremely decoupled (from other, non owned microservices | IT components) • Functionally • Non functionally – platform • Stateless (especially session-state less) • Stand alone • Deployable, manageable, scalable • Container • DevOps team • “You build it, you run it, you fix | evolve it”
  • 6. STANDING ON SHOULDERS OF GIANTS • Monolith++ • API • Scale out • Automated CI/CD • SOA++ • Stateless • HTTP native (REST) • Multiple tiers & platform components included • Deployable
  • 7. MICROSERVICES HOW • Public APIs in standardized protocols • Deployable on enterprise standardized microservices platform • Omnia mea porto mecum no external dependencies • Except: • Calls to public APIs (exposed for example by microservices) • Usage of platform facilities • Generically available via contract • Injected via parameters • No sharing of data or other private resources across microservices • Stateless and Horizontally scalable • No session state, no client stickyness • Potentially micro-silo with multiple tiers (including UI) • Any implementation technology • that can run on the platform
  • 8. MICROSERVICES PLATFORM • Receives microservice deployment • Handles scale out & fail over • Start/stop microservice instances based on non functional requirements and live observed behavior • Supports automated DevOps • CD, monitoring, … • Provides Capabilities – generic facilities available to microservices from the run time platform • Provided through public APIs whenever possible • Injected meta-data at run time • implemented by generic/platform level microservices Microservices Platform API deploy, inject dependencies, start, watch, restart, stop, scale API API API Gateway Authenticate Logging Cache
  • 9. THE MAKING OF A MICROSERVICE Dockerfile Pod.yaml Service.yaml Volume (Storage) Config&Depency Injection
  • 12. DOCKER FILE docker build -t lucasjellema/tweet-validator . docker tag tweet-validator lucasjellema/tweet-validator docker push lucasjellema/tweet-validator
  • 15. RUNNING POD IN KUBERNETES
  • 17. SHARED PLATFORM CAPABILITY • Microservices are isolated • Not aware of each other (except through public APIs) • Not sharing private resources • Ideally each microservice brings its own platform • To prevent run time environment from being out of synch and creating dependency/impact between multiple platform users • However: At some level, sharing is inevitable Storage, Compute, power supply, building • In practice: having full blown RDBMS or Java EE server or Kafka cluster as part of a microservice may be unfeasible • Even if Docker images are light weight from layering – the run time resource usage is probably not • One approach: forbid use of heavy platforms • Alternative approach: provide generic ‘heavy duty’ platform capabilities, available for use in any microservice in a standardized way • If you need it, you can make use of your own private Oracle Database 12c Schema (or PDB) with the following features available to you … ; recovery can be performed in the following ways and under these conditions.
  • 18. MICROSERVICES CROSS PLATFORM CAPABILITIES • Authentication • Persistent Storage • Cache • Load balancing/API Gateway • Discovery/Lookup • Monitoring • Functional/Business KPIs • Non Functional Platform/Container & Infra • Audit, Usage tracking, Billing • Notifications and alerting • Logging • Relational Database Capability Microservices Platform API API UI API UI Logging Cache Authentication Notification Usage Tracking
  • 19. EXAMPLE SYSTEM ARCHITECTURE Microservices Platform API API Logging Cache API API UI HTML 5 Web Component REST/ JSON Authentication API UI Java / Spring Boot NodeJS & Express & MongoDB Redis Widgets REST/ JSON Storage Python & MySQL REST/ JSON WebLogic & Oracle Database Legacy Application API UI Strangler NodeJS & Express Notification Usage Tracking
  • 20. TRENDS, CHALLENGES, COMMON • Use of containers and container management • Docker Containers – layered, packaged & shippable, registry • Docker Container Management: Composer, Mesos, Swarm or Kubernetes • Application Container platform such as Google App Engine, Azure App Service, Oracle Application Container Cloud, AWS Beanstalk • Serverless computing – AWS Lambda, Oracle Functions • Use of cache for [state of] longer running conversations • Transaction, session, workflow, business process • New ways to consider data • Every microservice owns the data it requires – data denormalization and duplication of data across microservices is a logical consequence • Command Query Responsibility Segregation (CQRS) and Event Sourcing • Orchestration | Choreography across microservices
  • 22. MICROSERVICES AND EVENTS • Report business events [without knowing to whom and without expecting a response] • Allowing interested microservices to respond – for example trigger serverless functions • Provide response to stateless caller – with conversation key • Choreograph cross-microservice workflow | process • Inform workflow | process orchestrator | job scheduler about activity status • Enable distributed transaction – commit and rollback/compensate • Make data events available for event sourcing • Allowing microservices to maintain their own [derived] data set • Synchronize cache refresh • Informing any microservice caching data about the need to refresh specific records • Hand systems events & metrics to monitoring service • Extreme decoupling – microservice choreography • Microservice never call each other, not even through public API; all interactions are through events
  • 23. MICROSERVICE WORKFLOW CHOREOGRAPHY • Multi step process • Each step in different microservice • Multiple approaches • Orchestrator – running the process by invoking the required microservices subsequently, responding either to synch response, asynch callback or event • Choreography – allow the required microservices to react to relevant events • Act when it is your turn (as determined by routing slip?) • Share state through cache with claim check in routing slip • When done, publish updated routing slip • Possibly implement compensation handler
  • 24. REQUIREMENTS FOR EVENT CAPABILITY IN MICROSERVICES PLATFORM • Provide decoupling between publisher and consumer • Generally accessible for all microservices • Across the platform • Using standardized protocols and formats for communications and event payload (http, JSON) • Scalable (handle high loads) • Available (allow speedy event publication) • Reliable (do not lose events, at least once delivery) • Event Ordering (deliver events in the order of publication) • Retain Event History • Manageable at scale • Event Catalog – which events are published, what do they mean and what is their payload • Harvested from microservices
  • 25. INTRODUCING APACHE KAFKA • ..- 2010 – creation at Linkedin • Message Bus | Event Broker • High volume, low latency, highly reliable, cross technology • Scalable, distributed, strict message ordering, …. • 2011/2012 – open source under the Apache Incubator/ Top Project • Kafka is used by many large corporations: • Walmart, Cisco, Netflix, PayPal, LinkedIn, eBay, Spotify, Uber, Sift Science • And embraced by many software vendors & cloud providers • Client libraries available for NodeJS, Java, C++, Python, Ruby, PHP and many more
  • 26. KAFKA TERMINOLOGY • Topic • partition • Message • == ByteArray • Broker • replicated • Producer • Consumer • Working together in Consumer Groups Producer Consumer Topic Broker Key Value Time Message
  • 28. CONNECT MICROSERVICES TO KAFKA – NODEJS EXAMPLE
  • 29. EXTENDED API OF MICROSERVICE • Deployment API • Injectable dependencies – reference to cache, logging, storage URL, … • Configurable meta-data – run time parameters, log level, credential (key) • Interraction API • REST Resources & Operations – query and URL parameters, message formats • Events Consumed – alternative way to call | activate a microservice • Reference to entry in Event Catalog • May include reference to shared Cache Resource • Events Produced – alternative output from microservice • Event can be an asynchronous response to a stateless consumer API
  • 30. EVENT BRIDGE TO CONNECT CLOUD & ON PREMISES EVENT BUS • An event bus based on Apache Kafka can run on premises and in the cloud • Various cloud vendors offer such an Apache Kafka service • For example Oracle Event Hub CS • In a hybrid landscape – both on premises and in-the-cloud microservices – two event buses can be used with a bridge between the two • Or more if multiple clouds are part of the landscape EventHub CS On premises Event Bus EventHub CS
  • 31. EVENT BRIDGE TO CONNECT CLOUD & ON PREMISES EVENT BUS Microservices Platform API EventHub CS On premises EventBridge API API API API API API API API Event Bus API EventBridgeEventBridge
  • 32. DESIRED WORKFLOW Tweet about OracleCode Validate Tweet No simple retweet, no black listed words used, no known robot tweeter or otherwise excluded authors, no undesirable location Enrich Tweet Details about author, location, hashtags, acronyms and abbreviations used in tweet Add Tweet to TweetBoard Add the tweet to the top of the TweetBoard – a list of recent, relevant tweets Publish TweetBoard Publish the TweetBoard through API and UI (HTML web document) done
  • 33. MICROSERVICES TO MAP WORKFLOW TO Microservices Platform API Event Bus REST/ JSON APIUI Cache Oracle Coherence EventHub CS Apache Kafka NodeJS & Express in ACCS On premises Tweet Board Validate Tweet API Java SE REST/ JSON Enrich Tweet Java SE
  • 35. CONFIGURE THE IFTTT RECIPE #oraclecode API EventBri
  • 36. CHOREOGRAPHED WORKFLOW #hashtag Microservices Platform API API API EventBridge Event Bus APIUI Cache Oracle Coherence EventHub CS Apache Kafka On premises TweetBoard Validate Tweet EventBridge API Enrich Tweet Workflow Launcher
  • 37. ROUTING SLIP PUBLISHED BY WORKFLOW LAUNCHER
  • 38. CHOREOGRAPHED WORKFLOW #hashtag Microservices Platform API API API EventBridge REST/ JSON Event Bus NodeJS & Express REST/ JSON NodeJS & Express in ACCS APIUI Cache Oracle Coherence EventHub CS Apache Kafka NodeJS & Express in ACCS On premises TweetBoard Validate Tweet EventBridge REST/ JSON API REST/ JSON Enrich Tweet Workflow Launcher NodeJS & Express
  • 39. Event Bus MICROSERVICE CHOREOGRAPHY TOPOLOGY EventBridge Workflow Launcher Tweet Validator Tweet Enricher Tweet Board Cache Cloud Service EventHub CS EventBridge App Container CS
  • 40. Event Bus LOGGING IN THE MICROSERVICE PLATFORM EventBridge Workflow Launcher Tweet Validator Tweet Enricher Tweet Board Cache EventHub CS EventBridge App Container CS Log Analytics Oracle Management Cloud Logger
  • 41. DEMO ORACLE MANAGEMENT CLOUD LOG ANALYTICS SYSTEM EVENTS – METRICS AND LOGGING
  • 42. MAIN TECHNICAL CHALLENGES • Dockerize NodeJS applications • Run Docker container images in Kubernetes cluster • Pass environment variables and disk volumes • Expose services through ports • Link NodeJS applications in Kubernetes to Kafka Cluster in VirtualBox • Producing to and consuming from Topic • Kafka host needs to be in /etc/hosts file in Node.JS Docker Container • Leverage in-cloud cache from Kubernetes Pod members • Share workflow instance state across microservices • Create two-way EventBridge between local microservices and cloud
  • 43. SUMMARY • Microservices are about rapid rollout of scalable, available functionality • (session) Stateless, Continuous deployment, horizontal scale out • One team is owner of a microservice and can evolve and deploy independently • Microservice is understandable and manageable • Microservices contain everything that is special for their implementation • External dependencies only on generic platform capabilities and public APIs • Microservices expose a public API • REST resources & operations and events (consumed and produced) • Decoupled, Event-based interaction is crucial for microservices • Cache synchronization, Monitoring, CQRS, Event Sourcing, Choreographed workflows • The microservices platform should provide an Event Bus capability • Apache Kafka is a proven, popular Event Bus implementation – available in premises and in the cloud (for example through Oracle Event Hub CS)
  • 44. • Blog: technology.amis.nl • Email: lucas.jellema@amis.nl • : lucasjellema • : lucas-jellema • : www.amis.nl, info@amis.nl +31 306016000 Edisonbaan 15, Nieuwegein Happy Coding! Source Code: https://github.com/lucasjellema/microservice-choreography-tweetboard

Editor's Notes

  1. Microservices are independent, encapsulated entities that produce meaningful results and business functionality in tentative collaboration. Events and pub/sub are great for allowing such decoupled interaction. Using Apache Kafka as robust, distributed, real-time, high volume event bus, this session demonstrates how microservices implemented in Java, Node, Python and SQL collaborate unknowingly. The microservices respond to social (media) events - courtesy of IFTTT - and publish results to multiple channels. The event bus operates across cloud services and on premises platforms: both the bus and the microservices can run anywhere. presentation summary - intro microservices objectives, focus on decoupled collaboration - demo four mservices in different technologies; no direct dependencies - outline desired choreography, use of events and need of event bus - intro Kafka - demo pub and sub from each mservice to Kafka - link IFTTT to Kafka (for demo: use ngrok to expose local Kafka to IFTTT cloud) - demo end-to-end Social event=>IFTTT=>Kafka=>choreographed mservices=> final result - discuss cloud deployment of event bus + mservices
  2. https://www.martinfowler.com/bliki/StranglerApplication.html https://dzone.com/articles/why-springboot
  3. http://microservices.io/patterns/data/event-driven-architecture.html http://eventuate.io/whyeventdriven.html http://www.kennybastani.com/2017/01/building-event-driven-microservices.html
  4. http://www.dreweaster.com/blog/2016/05/08/the-art-of-microservices-integration-using-service-choreography/ End-to-end autonomy (each microservice leverages event sourcing to maintain the state it needs (even though it does not own it) https://www.slideshare.net/CAinc/hypermediadriven-orchestration-in-microservices-55985377
  5. Workflow initiator responds to NewTweetEvent Workflow Initiator - When tweet is for hashtag oraclecode then create routingslip document with tweet data, store in cache under key and publish workflow event for OracleCodeTwitterWorkflow with cache key for workflow state in payload Validate Tweet – when OracleCodeTwitterWorkflow event – fetch workflow state from cache based on event payload, check routingslip to see if ValidateTweet should act; if so, validate tweet, update routing slip, retrieve and store in cache; publish workflow event for OracleCodeTwitterWorkflow with cache key for workflow state in payload Enrich Tweet – when OracleCodeTwitterWorkflow event – fetch workflow state from cache based on event payload, check routingslip to see if EnrichTweet should act; if so, enrich tweet, update routing slip, retrieve and store in cache; publish workflow event for OracleCodeTwitterWorkflow with cache key for workflow state in payload TweetBoard – when OracleCodeTwitterWorkflow event – fetch workflow state from cache based on event payload, check routingslip to see if TweetBoard should act; if so, add tweet to tweet list, update routing slip, retrieve-and-store in cache; publish workflow event for OracleCodeTwitterWorkflow with cache key for workflow state in payload All microservices publish logging about their actions with the conversation identifier as part of the logging
  6. Workflow initiator responds to NewTweetEvent Workflow Initiator - When tweet is for hashtag oraclecode then create routingslip document with tweet data, store in cache under key and publish workflow event for OracleCodeTwitterWorkflow with cache key for workflow state in payload Validate Tweet – when OracleCodeTwitterWorkflow event – fetch workflow state from cache based on event payload, check routingslip to see if ValidateTweet should act; if so, validate tweet, update routing slip, retrieve and store in cache; publish workflow event for OracleCodeTwitterWorkflow with cache key for workflow state in payload Enrich Tweet – when OracleCodeTwitterWorkflow event – fetch workflow state from cache based on event payload, check routingslip to see if EnrichTweet should act; if so, enrich tweet, update routing slip, retrieve and store in cache; publish workflow event for OracleCodeTwitterWorkflow with cache key for workflow state in payload TweetBoard – when OracleCodeTwitterWorkflow event – fetch workflow state from cache based on event payload, check routingslip to see if TweetBoard should act; if so, add tweet to tweet list, update routing slip, retrieve-and-store in cache; publish workflow event for OracleCodeTwitterWorkflow with cache key for workflow state in payload All microservices publish logging about their actions with the conversation identifier as part of the logging
  7. Workflow initiator responds to NewTweetEvent Workflow Initiator - When tweet is for hashtag oraclecode then create routingslip document with tweet data, store in cache under key and publish workflow event for OracleCodeTwitterWorkflow with cache key for workflow state in payload Validate Tweet – when OracleCodeTwitterWorkflow event – fetch workflow state from cache based on event payload, check routingslip to see if ValidateTweet should act; if so, validate tweet, update routing slip, retrieve and store in cache; publish workflow event for OracleCodeTwitterWorkflow with cache key for workflow state in payload Enrich Tweet – when OracleCodeTwitterWorkflow event – fetch workflow state from cache based on event payload, check routingslip to see if EnrichTweet should act; if so, enrich tweet, update routing slip, retrieve and store in cache; publish workflow event for OracleCodeTwitterWorkflow with cache key for workflow state in payload TweetBoard – when OracleCodeTwitterWorkflow event – fetch workflow state from cache based on event payload, check routingslip to see if TweetBoard should act; if so, add tweet to tweet list, update routing slip, retrieve-and-store in cache; publish workflow event for OracleCodeTwitterWorkflow with cache key for workflow state in payload All microservices publish logging about their actions with the conversation identifier as part of the logging