WSO2 MI for Enterprise Integration in
a Decentralized,
Microservice Oriented Landscape
Isuru Udana
Director - Engineering
WSO2
Shazni Nazeer
Director - Solutions Architecture
WSO2
Agenda
2
● Introduction to Microservices and decentralized architectures
● WSO2 MI overview and features
● Designing microservice-friendly integrations
● Implementation with WSO2 Micro Integrator
Microservices & Decentralized
Architecture
Microservices Architecture
4
4
● “Microservices architecture is about building a software application as a
collection of independent, autonomous (developed, deployed and scaled
independently), business capability oriented and loosely coupled services.”
Source: Microservices for Enterprise
Source : https://www.jitterbit.com/blog/integrating-the-modern-hybrid-cloud-architecture/
Monolithic Architecture
5
Service 2
Service 1
Service 3
Service 4
Consumers
SOA and ESB
6
6
Service 2
Service 1
Service 3
Service 4
Consumers
ESB
SOA with API Management
7
7
Service 2
Service 1
Service 3
Service 4
Consumers
ESB
ESB
API
Management
Eliminating the Central ESB
ESB contains business logic + network
communication logic
With MSA, business logic + network
communication logic are dispersed across
independent services
8
Smart Endpoints and Dumb Pipes
Consumers
Virtual
Service 1
Virtual
Service 2
Virtual
Service 3
Service A Service B Service C Service D
Microservice P
ESB
Consumers
Microservice X Microservice Y Microservice Z
Microservice P Microservice Q Microservice R Microservice S
JAVA Node.js Python
Organizing Microservices
● Not all microservices are similar
● Some services are business logic heavy, while some contain a lot of interservice
calls
● Some services are too fine-grained to be exposed as a business functionality
● Some services are exposed as APIs
Microservices Types with Different Granularities
10
Microservices Types with Different Granularities
11
Consumer 1
API Service 1 API Service 2 API Service 3 API Service 4
Consumers
Consumer 2 Consumer 3
Service 6 Service 7 Service 8 Service 9
Service 1 Service 2 Service 3 Service 4 Service 5 Proprietary &
Legacy
Systems
Web API /
SaaS
API Services/
Edge Services
Composite Service/
Integration Services
Core Services/
Atomic Services
Integrating Microservices is hard!
12
Uber’s microservice architecture circa mid-2018 from Jaeger
● Inter-service communication is essential.
● The capabilities that ESB provided have to be implemented at each service
level.
● Integration complexity is not reduced but dispersed across services.
Abstractions for Inter-Service communication
13
● Supporting high-level abstractions for inter-service communication.
● Support for multiple protocols and standards.
⦿ HTTP, gRPC, GraphQL, Web Sockets, Web Hooks, SOAP
⦿ Kafka, AMQP, NATS
⦿ FTP, SFTP
⦿ TCP, Rsocket
● Integrating with SaaS, proprietary and legacy systems
⦿ e.g. Salesforce, SAP, Amazon S3, SQS
Technologies for Building Microservices
Technologies
15
● Frameworks Based on General Purpose Lang
● Languages designed for Integration
● Low Code Integration
WSO2 Micro Integrator
Micro Integrator
17
Robust
Lightweight
Powerful
Solve Any
Integration Challenge
18
Flexible Deployment
Microservices
ESB
Powerful
Transformations
20
21
Simplified Debugging
and Testing
Key Features
23
Message Routing
24
Message Transformation
25
Data Integration
26
Service Orchestration
27
Asynchronous Messaging
28
Connecting Web APIs/Cloud Services
29
Protocol Switching
30
File Processing
Scenario
32
Scenario
33
Scenario
34
Scenario
35
Integration Studio
High-Level Architecture
37
Components
Mediation Engine
Transports
HTTP
FILE
JMS
.
. more
Deployment Framework
Observability/Analytics
Tools
Message
Processing
Units
Receivers
Senders
Integration
Control
Plane
Development
Tools
MI for
VSCode
Integration
Studio
Developers
Deployment
Tools/CICD
Systems and
Services
CLI
ELK Jaeger Zipkin
MI Runtime
Concepts
39
Messaging Architecture
40
Triggering Messages
41
APIs
42
Proxy Services
Acts as a virtual service. Receives messages and mediates them before sending them to the
endpoint.
43
Tasks
Configure scheduled jobs that execute internal/external commands.
44
Inbound Endpoints
A message source that can be configured dynamically.
45
Mediators
Name Description
Log Mediator
Logs full or part of the message at various severity levels ( Trace, Debug,
etc.).
Sequence Mediator Invokes existing sequence. Sequence name can be static or dynamic.
Call Mediator Sends a message out using static information or an endpoint definition.
Respond Mediator Responds back to the client.
Switch Mediator
Evaluates message content against regular expressions and invokes the
corresponding mediator (switch-case-default).
Property Mediator Assigns a value to a property to be retrieved later
Drop Mediator Stops processing the current message.
Fault Mediator Transforms current message into a custom Fault message.
Scenario Contd..
Micro Integrator for VS Code
47
Question Time!
48
Thank You!
50

WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microservice-Oriented Landscape