SlideShare a Scribd company logo
17/02/2021
Lisbon MuleSoft Meetup Group
Async APIs: Event Driven Architecture
Introductions
●About the organizers:
○ Meetup Leader: Steve Fernandes
○ Meetup Speaker: João Batista
●Sponsors:
○ Timestamp:its
2
Agenda
● Event Driven Architecture (5 min.)
● Why Async API? (5 min.)
● Async API Specification (15-20 min.)
● Demo (10 min.)
● Q & A
● Quiz - MuleSoft Vouchers
3
Event Driven Architecture
Event Driven Architecture (EDA)
● Events
● Trigger – change in state
● Main Concepts
● Delivery Guarantee - ACK
5
Producer
Broker
Consumer
Event Driven Architecture - Benefits
1. Better Scalability & Fault tolerance
2. Versality & Agility
3. Cut costs
● Event driven architecture taken by the planet’s
most successful enterprises.
● Mid 2021Fortune 100 using EDA via Kafka.
6
80% IoT
Cloud Messaging
Event Driven Architecture - Challenges
7
Discovery Governance Visibility
Event Driven Architecture - Challenges
● Protocols?
● Event Structure?
● Broker configuration?
8
Discovery Governance Visibility
Event Driven Architecture - Challenges
● Security?
● Access management?
● Best Practices & Convention
9
Discovery Governance Visibility
Event Driven Architecture - Challenges
● Information?
● Taking insights
● Preventative actions
10
Discovery Governance Visibility
Why Async API?
Why Async API?
● Necessities on message based systems (EDA, IoT, etc) –
Open Source Specification!
● Purposely based & mapped from OpenAPI Spec;
● Supported by many industry leader event-driven players
12
Why Async API - MuleSoft
● Design Center – Build a Specification & sharing a standard across
MuleSoft world
● Anypoint Exchange – MarketPlace for synchronous & asynchronous
APIs
13
Async API Specification
Introduction
● Async API Specification (A2S): Describe and document message-
driven APIs, protocol-agnostic. Specification format: JSON/YAML.
● Async API Schema: aggregates in main sections broker resources listing,
and API declaration into one document
15
Walk through over Specification…
● AsyncAPI: current version (2.0.0)
● Id: Application identifier
● Info: metadata about the API. The metadata can be used by the clients
if needed;
● tags: Helpful in addressing specifications onto different categories;
● externalDocs: links specification as part of a broader application
16
Walk through over Specification…
● Provides connection details about host message broker
● Support protocol (NOT Limited):
17
Servers
Servers
(queue/topic/destination
name)
url (required!)
Protocol (required!)
protocolVersion
Description
variables
security
Bindings
amqp amqps
Kafka-secure
secure-mqtt
stomp stomps ws wss
mqtt
https
http
Walk through over Specification…
● Provides connection details about host message broker
○ Fixed upon following fields:
18
Servers
Servers[ ]
url (required!)
Protocol (required!)
protocolVersion
Description
variables
security
Bindings
Walk through over Specification…
● Provides connection details about host message broker
○ Security: security mechanisms applied on server, which stands out:
19
Servers
Servers[ ]
url (required!)
Protocol (required!)
protocolVersion
Description
variables
security
Bindings
Walk through over Specification…
● Provides connection details about host message broker
○ Security: security mechanisms applied on server to allow the operation,
which the following ones can be applied :
20
Servers
Servers[ ]
url (required!)
Protocol (required!)
protocolVersion
Description
variables
security
Bindings
User/Password
API Key
X.509 Certificate
OAuth2
OpenId Connect
Discovery
HTTP API Key
E2E Encryption
SASL
Security Schemes
Walk through over Specification…
21
Server Bindings
● Aims to help with more detail about the protocol and/or the topology.
Servers[ ]
url !
protocol !
description;
protocolVersion
variables
security
bindings
Walk through over Specification…
● Components: Reusable components across AsyncAPI
specification.
● Must be referenced by properties outside (servers, channels,
etc).
● References: linking other components internally or externally
spec.
○ $ref – JSON reference only used for JSON/YAML specs
formats
○ Add/Extend properties is not an option
22
Components & References
Walk through over Specification…
● Components: Reusable components across AsyncAPI
specification.
● Must be referenced by properties outside (servers, channels,
etc).
● References: linking other components internally or externally
spec.
○ $ref – JSON reference only used for JSON/YAML specs
formats
○ Add/Extend properties is not an option
23
Components & References
Walk through over Specification…
24
Bindings
● Aims to help with more detail about the protocol and/or the topology.
Servers
• mqtt
Channel
• ws, amqp
Operation
• http, amqp, kafka, amqp, mqtt, nats
Message
• http, kafka, amqp, mqtt
Walk through over Specification…
25
Server Bindings Examples
● Provides information needed to setup a server configuration according
protocol defined
Walk through over Specification…
26
Channel Bindings Examples
● Provides information needed to manage a channel specification
according protocol defined
Walk through over Specification…
27
Operation Bindings Examples
● Provides information needed to apply protocol priority configurations
on a publish/subscribe operations
Walk through over Specification…
28
Message Bindings Examples
● Provides information needed to apply protocol definitions over
messages
Walk through over Specification…
● Holds the relative paths to the individual channel and their operations.
Each channel documentation is enhanced by following features:
29
Channels
Channels
(queue/topic/d
estination
name)
Reference
structure ($ref)
description
Operation
(Subscribe
Publish)
Parameters
Bindings
Walk through over Specification…
● Holds the relative paths to the individual channel and their operations.
Each channel documentation is enhanced by following features:
30
Channels
(queue/topic/destination
name)
Reference
structure ($ref)
description
Operation
(Subscribe
Publish)
Parameters
Bindings
Channels
Walk through over Specification…
● Publish or a subscribe operation, sets how messages are sent and
received
31
Operation
(publish/subscribe)
operationId
Metadata
summary
description
Tags
externalDocs
bindings
traits
message
Operation
Walk through over Specification…
32
Operation Trait
● Aims to define/apply common patterns over operation attributes
Operation
trait
operationId
Metadata
summary
description
Tags
externalDocs
bindings
Walk through over Specification…
● Describes a message received on a given channel and operation.
● Headers & Payload follows a schema Object
● Message type specified by multiple messages, but valid only by one
33
title, type, required, multipleOf, maximum,
exclusiveMaximum, minimum, exclusiveMinimum,
maxLength, minLength, pattern, maxItems,
minItems, uniqueItems, maxProperties,
minProperties, enum, const, examples, if / then /
else, readOnly, writeOnly, properties,
patternProperties, additionalProperties,
additionalItems, items, propertyNames, contains,
allOf, oneOf, anyOf, not,
Schema Object
Message – Headers / Payload
Walk through over Specification…
● Attribute useful on tracing & tracking workflow of event
● Setting up its location upon Runtime Expressions
● Built under following expression:
34
expression = ( "$message" "." source )
source = ( header-reference | payload-reference )
header-reference = "header" ["#" fragment]
payload-reference = "payload" ["#" fragment]
fragment = a JSON Pointer
Correlation ID & Runtime Expression
Runtime Expressions
Walk through over Specification…
● Defines message payload. Default Schema Object.
● Supported schema formats
35
Message - Schema Format
Schemas Allowed values
AsyncAPI 2.0.0
Schema Object
application/vnd.aai.asyncapi;version=2.0.0
application/vnd.aai.asyncapi+json;version=2.0.0
application/vnd.aai.asyncapi+yaml;version=2.0.0
This is the default
when
a schemaFormat is
not provided.
OpenAPI 3.0.0
Schema Object
application/vnd.oai.openapi;version=3.0.0,
application/vnd.oai.openapi+json;version=3.0.0,
application/vnd.oai.openapi+yaml;version=3.0.0
JSON Schema
Draft 07
application/schema+json;version=draft-07,
application/schema+yaml;version=draft-07
Avro 1.9.0
schema
application/vnd.apache.avro;version=1.9.0,
application/vnd.apache.avro+json;version=1.9.0,
application/vnd.apache.avro+yaml;version=1.9.0
Walk through over Specification…
● Patterns/validations on Message attributes
● Message structure
36
Message - Traits
Message
Trait
headers
correlationId
schemaFormat
contentType
Metadata
Name
title
summary
description
Tags
externalDocs
bindings
Examples
Async API vs RAML Spec
37
1. INFO
2. Resources
3. Methods
4. Headers & Request | Response
5. Data types
6. Resource Types & Traits
7. Security schemes
1. INFO
2. Channels
3. Operation
4. Message
5. Components
6. Traits
7. Security schemes
Demo
Demo
39
flight-notifications-
publisher-api
Anypoint MQ
flight-notifications-
subscriber-api
Networking time
Introduce yourself to your neighbor
Q & A
Quiz - MuleSoft Vouchers
Thank you!

More Related Content

Similar to Mulesoft lisbon_meetup_asyncapis

Hyperledger Fabric update Meetup 20181101
Hyperledger Fabric update Meetup 20181101Hyperledger Fabric update Meetup 20181101
Hyperledger Fabric update Meetup 20181101
Arnaud Le Hors
 
All About Microservices and OpenSource Microservice Frameworks
All About Microservices and OpenSource Microservice FrameworksAll About Microservices and OpenSource Microservice Frameworks
All About Microservices and OpenSource Microservice Frameworks
Mohammad Asif Siddiqui
 
KrakenD API Gateway
KrakenD API GatewayKrakenD API Gateway
KrakenD API Gateway
Albert Lombarte
 
Service Meshes with Istio
Service Meshes with IstioService Meshes with Istio
Service Meshes with Istio
RandyGupta
 
WSO2 Product Release Webinar: WSO2 Enterprise Service Bus 5.0
WSO2 Product Release Webinar: WSO2 Enterprise Service Bus 5.0WSO2 Product Release Webinar: WSO2 Enterprise Service Bus 5.0
WSO2 Product Release Webinar: WSO2 Enterprise Service Bus 5.0
WSO2
 
Blockchain solution architecture deliverable
Blockchain solution architecture deliverableBlockchain solution architecture deliverable
Blockchain solution architecture deliverable
Sarmad Ibrahim
 
Extending SDN beyond the control plane
Extending SDN beyond the control planeExtending SDN beyond the control plane
Extending SDN beyond the control plane
Anees Shaikh
 
Using Kubernetes to make cellular data plans cheaper for 50M users
Using Kubernetes to make cellular data plans cheaper for 50M usersUsing Kubernetes to make cellular data plans cheaper for 50M users
Using Kubernetes to make cellular data plans cheaper for 50M users
Mirantis
 
Using an API Gateway for Microservices
Using an API Gateway for MicroservicesUsing an API Gateway for Microservices
Using an API Gateway for Microservices
NGINX, Inc.
 
Lisbon Mulesoft Meetup - Logging Aggregation & Visualization
Lisbon Mulesoft Meetup - Logging Aggregation & VisualizationLisbon Mulesoft Meetup - Logging Aggregation & Visualization
Lisbon Mulesoft Meetup - Logging Aggregation & Visualization
Steve Michael Fernandes
 
Software Innovations and Control Plane Evolution in the new SDN Transport Arc...
Software Innovations and Control Plane Evolution in the new SDN Transport Arc...Software Innovations and Control Plane Evolution in the new SDN Transport Arc...
Software Innovations and Control Plane Evolution in the new SDN Transport Arc...
Cisco Canada
 
P4_tutorial.pdf
P4_tutorial.pdfP4_tutorial.pdf
P4_tutorial.pdf
PramodhN3
 
API Gateway report
API Gateway reportAPI Gateway report
API Gateway report
Gleicon Moraes
 
Wso2 esb 5.0.0 product release webinar
Wso2 esb 5.0.0   product release webinarWso2 esb 5.0.0   product release webinar
Wso2 esb 5.0.0 product release webinar
Chanaka Fernando
 
Kubernetes @ Squarespace: Kubernetes in the Datacenter
Kubernetes @ Squarespace: Kubernetes in the DatacenterKubernetes @ Squarespace: Kubernetes in the Datacenter
Kubernetes @ Squarespace: Kubernetes in the Datacenter
Kevin Lynch
 
Pulsar summit asia 2021 apache pulsar with mqtt for edge computing
Pulsar summit asia 2021   apache pulsar with mqtt for edge computingPulsar summit asia 2021   apache pulsar with mqtt for edge computing
Pulsar summit asia 2021 apache pulsar with mqtt for edge computing
Timothy Spann
 
KFServing and Feast
KFServing and FeastKFServing and Feast
KFServing and Feast
Animesh Singh
 
Monitoring in Big Data Platform - Albert Lewandowski, GetInData
Monitoring in Big Data Platform - Albert Lewandowski, GetInDataMonitoring in Big Data Platform - Albert Lewandowski, GetInData
Monitoring in Big Data Platform - Albert Lewandowski, GetInData
GetInData
 
Open Source Networking Days- Service Mesh
Open Source Networking Days- Service MeshOpen Source Networking Days- Service Mesh
Open Source Networking Days- Service Mesh
CloudOps2005
 
FIWARE Global Summit - Provisioning of the FIWARE Orion Context Broker using ...
FIWARE Global Summit - Provisioning of the FIWARE Orion Context Broker using ...FIWARE Global Summit - Provisioning of the FIWARE Orion Context Broker using ...
FIWARE Global Summit - Provisioning of the FIWARE Orion Context Broker using ...
FIWARE
 

Similar to Mulesoft lisbon_meetup_asyncapis (20)

Hyperledger Fabric update Meetup 20181101
Hyperledger Fabric update Meetup 20181101Hyperledger Fabric update Meetup 20181101
Hyperledger Fabric update Meetup 20181101
 
All About Microservices and OpenSource Microservice Frameworks
All About Microservices and OpenSource Microservice FrameworksAll About Microservices and OpenSource Microservice Frameworks
All About Microservices and OpenSource Microservice Frameworks
 
KrakenD API Gateway
KrakenD API GatewayKrakenD API Gateway
KrakenD API Gateway
 
Service Meshes with Istio
Service Meshes with IstioService Meshes with Istio
Service Meshes with Istio
 
WSO2 Product Release Webinar: WSO2 Enterprise Service Bus 5.0
WSO2 Product Release Webinar: WSO2 Enterprise Service Bus 5.0WSO2 Product Release Webinar: WSO2 Enterprise Service Bus 5.0
WSO2 Product Release Webinar: WSO2 Enterprise Service Bus 5.0
 
Blockchain solution architecture deliverable
Blockchain solution architecture deliverableBlockchain solution architecture deliverable
Blockchain solution architecture deliverable
 
Extending SDN beyond the control plane
Extending SDN beyond the control planeExtending SDN beyond the control plane
Extending SDN beyond the control plane
 
Using Kubernetes to make cellular data plans cheaper for 50M users
Using Kubernetes to make cellular data plans cheaper for 50M usersUsing Kubernetes to make cellular data plans cheaper for 50M users
Using Kubernetes to make cellular data plans cheaper for 50M users
 
Using an API Gateway for Microservices
Using an API Gateway for MicroservicesUsing an API Gateway for Microservices
Using an API Gateway for Microservices
 
Lisbon Mulesoft Meetup - Logging Aggregation & Visualization
Lisbon Mulesoft Meetup - Logging Aggregation & VisualizationLisbon Mulesoft Meetup - Logging Aggregation & Visualization
Lisbon Mulesoft Meetup - Logging Aggregation & Visualization
 
Software Innovations and Control Plane Evolution in the new SDN Transport Arc...
Software Innovations and Control Plane Evolution in the new SDN Transport Arc...Software Innovations and Control Plane Evolution in the new SDN Transport Arc...
Software Innovations and Control Plane Evolution in the new SDN Transport Arc...
 
P4_tutorial.pdf
P4_tutorial.pdfP4_tutorial.pdf
P4_tutorial.pdf
 
API Gateway report
API Gateway reportAPI Gateway report
API Gateway report
 
Wso2 esb 5.0.0 product release webinar
Wso2 esb 5.0.0   product release webinarWso2 esb 5.0.0   product release webinar
Wso2 esb 5.0.0 product release webinar
 
Kubernetes @ Squarespace: Kubernetes in the Datacenter
Kubernetes @ Squarespace: Kubernetes in the DatacenterKubernetes @ Squarespace: Kubernetes in the Datacenter
Kubernetes @ Squarespace: Kubernetes in the Datacenter
 
Pulsar summit asia 2021 apache pulsar with mqtt for edge computing
Pulsar summit asia 2021   apache pulsar with mqtt for edge computingPulsar summit asia 2021   apache pulsar with mqtt for edge computing
Pulsar summit asia 2021 apache pulsar with mqtt for edge computing
 
KFServing and Feast
KFServing and FeastKFServing and Feast
KFServing and Feast
 
Monitoring in Big Data Platform - Albert Lewandowski, GetInData
Monitoring in Big Data Platform - Albert Lewandowski, GetInDataMonitoring in Big Data Platform - Albert Lewandowski, GetInData
Monitoring in Big Data Platform - Albert Lewandowski, GetInData
 
Open Source Networking Days- Service Mesh
Open Source Networking Days- Service MeshOpen Source Networking Days- Service Mesh
Open Source Networking Days- Service Mesh
 
FIWARE Global Summit - Provisioning of the FIWARE Orion Context Broker using ...
FIWARE Global Summit - Provisioning of the FIWARE Orion Context Broker using ...FIWARE Global Summit - Provisioning of the FIWARE Orion Context Broker using ...
FIWARE Global Summit - Provisioning of the FIWARE Orion Context Broker using ...
 

Recently uploaded

Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
Srikant77
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
Tier1 app
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 

Recently uploaded (20)

Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 

Mulesoft lisbon_meetup_asyncapis

  • 1. 17/02/2021 Lisbon MuleSoft Meetup Group Async APIs: Event Driven Architecture
  • 2. Introductions ●About the organizers: ○ Meetup Leader: Steve Fernandes ○ Meetup Speaker: João Batista ●Sponsors: ○ Timestamp:its 2
  • 3. Agenda ● Event Driven Architecture (5 min.) ● Why Async API? (5 min.) ● Async API Specification (15-20 min.) ● Demo (10 min.) ● Q & A ● Quiz - MuleSoft Vouchers 3
  • 5. Event Driven Architecture (EDA) ● Events ● Trigger – change in state ● Main Concepts ● Delivery Guarantee - ACK 5 Producer Broker Consumer
  • 6. Event Driven Architecture - Benefits 1. Better Scalability & Fault tolerance 2. Versality & Agility 3. Cut costs ● Event driven architecture taken by the planet’s most successful enterprises. ● Mid 2021Fortune 100 using EDA via Kafka. 6 80% IoT Cloud Messaging
  • 7. Event Driven Architecture - Challenges 7 Discovery Governance Visibility
  • 8. Event Driven Architecture - Challenges ● Protocols? ● Event Structure? ● Broker configuration? 8 Discovery Governance Visibility
  • 9. Event Driven Architecture - Challenges ● Security? ● Access management? ● Best Practices & Convention 9 Discovery Governance Visibility
  • 10. Event Driven Architecture - Challenges ● Information? ● Taking insights ● Preventative actions 10 Discovery Governance Visibility
  • 12. Why Async API? ● Necessities on message based systems (EDA, IoT, etc) – Open Source Specification! ● Purposely based & mapped from OpenAPI Spec; ● Supported by many industry leader event-driven players 12
  • 13. Why Async API - MuleSoft ● Design Center – Build a Specification & sharing a standard across MuleSoft world ● Anypoint Exchange – MarketPlace for synchronous & asynchronous APIs 13
  • 15. Introduction ● Async API Specification (A2S): Describe and document message- driven APIs, protocol-agnostic. Specification format: JSON/YAML. ● Async API Schema: aggregates in main sections broker resources listing, and API declaration into one document 15
  • 16. Walk through over Specification… ● AsyncAPI: current version (2.0.0) ● Id: Application identifier ● Info: metadata about the API. The metadata can be used by the clients if needed; ● tags: Helpful in addressing specifications onto different categories; ● externalDocs: links specification as part of a broader application 16
  • 17. Walk through over Specification… ● Provides connection details about host message broker ● Support protocol (NOT Limited): 17 Servers Servers (queue/topic/destination name) url (required!) Protocol (required!) protocolVersion Description variables security Bindings amqp amqps Kafka-secure secure-mqtt stomp stomps ws wss mqtt https http
  • 18. Walk through over Specification… ● Provides connection details about host message broker ○ Fixed upon following fields: 18 Servers Servers[ ] url (required!) Protocol (required!) protocolVersion Description variables security Bindings
  • 19. Walk through over Specification… ● Provides connection details about host message broker ○ Security: security mechanisms applied on server, which stands out: 19 Servers Servers[ ] url (required!) Protocol (required!) protocolVersion Description variables security Bindings
  • 20. Walk through over Specification… ● Provides connection details about host message broker ○ Security: security mechanisms applied on server to allow the operation, which the following ones can be applied : 20 Servers Servers[ ] url (required!) Protocol (required!) protocolVersion Description variables security Bindings User/Password API Key X.509 Certificate OAuth2 OpenId Connect Discovery HTTP API Key E2E Encryption SASL Security Schemes
  • 21. Walk through over Specification… 21 Server Bindings ● Aims to help with more detail about the protocol and/or the topology. Servers[ ] url ! protocol ! description; protocolVersion variables security bindings
  • 22. Walk through over Specification… ● Components: Reusable components across AsyncAPI specification. ● Must be referenced by properties outside (servers, channels, etc). ● References: linking other components internally or externally spec. ○ $ref – JSON reference only used for JSON/YAML specs formats ○ Add/Extend properties is not an option 22 Components & References
  • 23. Walk through over Specification… ● Components: Reusable components across AsyncAPI specification. ● Must be referenced by properties outside (servers, channels, etc). ● References: linking other components internally or externally spec. ○ $ref – JSON reference only used for JSON/YAML specs formats ○ Add/Extend properties is not an option 23 Components & References
  • 24. Walk through over Specification… 24 Bindings ● Aims to help with more detail about the protocol and/or the topology. Servers • mqtt Channel • ws, amqp Operation • http, amqp, kafka, amqp, mqtt, nats Message • http, kafka, amqp, mqtt
  • 25. Walk through over Specification… 25 Server Bindings Examples ● Provides information needed to setup a server configuration according protocol defined
  • 26. Walk through over Specification… 26 Channel Bindings Examples ● Provides information needed to manage a channel specification according protocol defined
  • 27. Walk through over Specification… 27 Operation Bindings Examples ● Provides information needed to apply protocol priority configurations on a publish/subscribe operations
  • 28. Walk through over Specification… 28 Message Bindings Examples ● Provides information needed to apply protocol definitions over messages
  • 29. Walk through over Specification… ● Holds the relative paths to the individual channel and their operations. Each channel documentation is enhanced by following features: 29 Channels Channels (queue/topic/d estination name) Reference structure ($ref) description Operation (Subscribe Publish) Parameters Bindings
  • 30. Walk through over Specification… ● Holds the relative paths to the individual channel and their operations. Each channel documentation is enhanced by following features: 30 Channels (queue/topic/destination name) Reference structure ($ref) description Operation (Subscribe Publish) Parameters Bindings Channels
  • 31. Walk through over Specification… ● Publish or a subscribe operation, sets how messages are sent and received 31 Operation (publish/subscribe) operationId Metadata summary description Tags externalDocs bindings traits message Operation
  • 32. Walk through over Specification… 32 Operation Trait ● Aims to define/apply common patterns over operation attributes Operation trait operationId Metadata summary description Tags externalDocs bindings
  • 33. Walk through over Specification… ● Describes a message received on a given channel and operation. ● Headers & Payload follows a schema Object ● Message type specified by multiple messages, but valid only by one 33 title, type, required, multipleOf, maximum, exclusiveMaximum, minimum, exclusiveMinimum, maxLength, minLength, pattern, maxItems, minItems, uniqueItems, maxProperties, minProperties, enum, const, examples, if / then / else, readOnly, writeOnly, properties, patternProperties, additionalProperties, additionalItems, items, propertyNames, contains, allOf, oneOf, anyOf, not, Schema Object Message – Headers / Payload
  • 34. Walk through over Specification… ● Attribute useful on tracing & tracking workflow of event ● Setting up its location upon Runtime Expressions ● Built under following expression: 34 expression = ( "$message" "." source ) source = ( header-reference | payload-reference ) header-reference = "header" ["#" fragment] payload-reference = "payload" ["#" fragment] fragment = a JSON Pointer Correlation ID & Runtime Expression Runtime Expressions
  • 35. Walk through over Specification… ● Defines message payload. Default Schema Object. ● Supported schema formats 35 Message - Schema Format Schemas Allowed values AsyncAPI 2.0.0 Schema Object application/vnd.aai.asyncapi;version=2.0.0 application/vnd.aai.asyncapi+json;version=2.0.0 application/vnd.aai.asyncapi+yaml;version=2.0.0 This is the default when a schemaFormat is not provided. OpenAPI 3.0.0 Schema Object application/vnd.oai.openapi;version=3.0.0, application/vnd.oai.openapi+json;version=3.0.0, application/vnd.oai.openapi+yaml;version=3.0.0 JSON Schema Draft 07 application/schema+json;version=draft-07, application/schema+yaml;version=draft-07 Avro 1.9.0 schema application/vnd.apache.avro;version=1.9.0, application/vnd.apache.avro+json;version=1.9.0, application/vnd.apache.avro+yaml;version=1.9.0
  • 36. Walk through over Specification… ● Patterns/validations on Message attributes ● Message structure 36 Message - Traits Message Trait headers correlationId schemaFormat contentType Metadata Name title summary description Tags externalDocs bindings Examples
  • 37. Async API vs RAML Spec 37 1. INFO 2. Resources 3. Methods 4. Headers & Request | Response 5. Data types 6. Resource Types & Traits 7. Security schemes 1. INFO 2. Channels 3. Operation 4. Message 5. Components 6. Traits 7. Security schemes
  • 38. Demo
  • 41. Q & A
  • 42. Quiz - MuleSoft Vouchers