SlideShare a Scribd company logo
1 of 34
Classificatie: vertrouwelijk
Conclusion Code
Café Microcks –
testing &
mocking
Async APIs
11-01-2022
Classificatie: vertrouwelijk
The Interface of a Service
API
HTTP REST/JSON
Code Café Microcks - January 2022
µ
HTTP/2 gRPC/ProtoBuf
HTTP SOAP/XML
Kafka
MQTT
WebSocket
HTTP
JMS
AMQP
STOMP
NATS, SNS, SQS,
Redis, RabbitMQ
Kafka
MQTT
WebSocket
HTTP
JMS
AMQP
STOMP
NATS, SNS, SQS,
Redis, RabbitMQ
2
Classificatie: vertrouwelijk
AsyncAPI
• Design Time
• Event Driven Architecture
• Pub/Sub
• Asynchronous Interactions
• API Design
• Interface Definition/Contract
Code Café Microcks - January 2022 3
Classificatie: vertrouwelijk
AsyncAPI
• Compare OpenAPI
• Describes an API (in yaml or json) to consumers
• invitation to publish events on a certain topic
on which the API is subscribed and from which it consumes
• invitation to subscribe to a certain topic (that the API publishes to)
• the message structure that is actually published or consumed
• Used to generate code for publishing or consuming
• and provide documentation for developers and testers
• Used to drive Mock-tools to publish the event said to be consumed
• Used to drive Test-tools-tools to listen for the events claimed to be published
• Sponsored by Solace, Postman, IBM, SalesForce, MuleSoft, IQVia, Tibco,
SAP, Slack
Code Café Microcks - January 2022 4
Classificatie: vertrouwelijk
AsynchAPI Interface Definition
• Define for an API
• the Channel (queue, topic, …) the API subscribes to
• the message type the API expects to consume
• the Channel the API publishes to
• the message type the API publishes
• the Servers on which the API connects
• Kafka Broker, HTTP url endpoint, RabbitMQ Broker endpoint
• link between Channel and Server(s) (channel binding)
• Developer and tools can interpret this definition
• generate code, stubs, mocks, tests
Code Café Microcks - January 2022 5
PUBLISH
SUBSCRIBE
Classificatie: vertrouwelijk
Testing and Mocking Async APIs with Microcks
Code Café Microcks - January 2022 6
load & interpret AsyncAPI definitions
Mock implementation
that publishes events
to channel (just as the
real API would do)
Test that subscribes
and consumes
messages that API
promises to publish
Kafka
MQTT
WebSocket
Kafka
MQTT
WebSocket
Classificatie: vertrouwelijk
application.properties
Running Microcks with Docker Compose
(with async-api enabled)
Code Café Microcks - January 2022 7
Kafka
docker-compose.yml docker-compose-async-addon.yml kafdrop-addon.yml
Kaf
Drop
Mongo
DB
Key
Cloak
microcks-
postman
microcks
async-
minion
Zoo
keeper
UI
UI
UI
features.properties
Classificatie: vertrouwelijk
Code Café Microcks - January 2022 9
Classificatie: vertrouwelijk
Microcks and Async APIs
• Prepare AsyncAPI interface definition
• message definitions, channel name
• examples (used for mocked messages) – including function expressions
such as {{now(yyyy-mm-dd)}}, {{uuid()}}, {{randomFirstName()}}
• Import API contract in Microcks
• Microcks will automatically
• validate interface and exposes API documentation
• start publishing mock messages to default channel binding (i.e. Kafka)
• when other channel bindings are declared, then these too (WS, MQTT)
• Consume mock messages in event client application under development
• …
Code Café Microcks - January 2022 10
Classificatie: vertrouwelijk
WS
MQTT
Application can Consume Correct Messages through Real
Channel published by generated Mock
Code Café Microcks - January 2022 11
load & interpret AsyncAPI definitions
Mock implementation that
publishes events to channel
(just as the real API would do)
Kafka
Kaf
Drop
UI
Application
under Development
subscribe & consume
Event Client can be
generated from Async
API interface definition
Mock
API
implemen-
tation
Classificatie: vertrouwelijk
Code Café Microcks - January 2022 12
Translated by Microcks to topic
CodeCafeAdvancedStreetlightsAPI-1.1-smartylighting-
codecafe-streetlights-event-lighting-measured
Classificatie: vertrouwelijk
Code Café Microcks - January 2022 13
Classificatie: vertrouwelijk
Code Café Microcks - January 2022 14
load &
interpret
AsyncAPI
definitions
Classificatie: vertrouwelijk
Code Café Microcks - January 2022 15
Classificatie: vertrouwelijk
Code Café Microcks - January 2022 16
Classificatie: vertrouwelijk
Code Café Microcks - January 2022 17
Classificatie: vertrouwelijk
Code Café Microcks - January 2022 18
load & interpret AsyncAPI definitions
Kafka
Kaf
Drop
UI
Mock
API
implemen-
tation
Classificatie: vertrouwelijk
Code Café Microcks - January 2022 19
Classificatie: vertrouwelijk
Code Café Microcks - January 2022 20
Kafka Application
under Development
subscribe & consume
Mock
API
implemen-
tation
Classificatie: vertrouwelijk
Microcks and Async APIs
• Prepare AsyncAPI interface definition
• message definitions, channel name
• Import API contract in Microcks
• Microcks automatically
• validates interface and exposes API documentation
• starts publishing mock messages to default channel binding (i.e. Kafka)
• when other channel bindings are declared, then these too (WS, MQTT)
• Consume mock messages in event client application under development
• Create Test in Microcks: validate messages published by application under
test to a specific endpoint
• messages to validate can be consumed from topic on Kafka Broker,
MQTT Broker or WebSocket Server
Code Café Microcks - January 2022 21
Classificatie: vertrouwelijk
Microcks can generate and run tests on the messages
published by producing application
Code Café Microcks - January 2022 22
load & interpret AsyncAPI definitions
Kafka
Application
under Development
MQTT
Web
Socket
Test that subscribes and
consumes messages that
API promises to publish
subscribe
&
consume
Event producing code can
be generated from Async
API interface definition
Classificatie: vertrouwelijk
Validate the example messages produced by Mock
Code Café Microcks - January 2022 23
load & interpret AsyncAPI definitions
Kafka
Test that subscribes and
consumes messages that
API promises to publish
load & interpret AsyncAPI definitions
Mock
API
implemen-
tation
Validate correctness of
Mock-produced events
Classificatie: vertrouwelijk
Validate the example messages produced by Mock
Code Café Microcks - January 2022 24
Classificatie: vertrouwelijk
Validate the example messages produced by Mock
Code Café Microcks - January 2022 25
Change message
schema in
AysyncAPI
Examples do not
comply
Test fails
load &
interpret
AsyncAPI
definitions
Reload AsyncAPI
definition
Classificatie: vertrouwelijk
Validate the example messages produced by Mock
Code Café Microcks - January 2022 26
Test on Mock
generated
messages fails
Classificatie: vertrouwelijk
Conclusion on Microcks & Async APIs
• AsyncAPI is standard for defining API interface for consuming or producing messages
asynchronously
• via queue | event broker | web socket
• Microcks understands AsyncAPI contracts – but only SUBSCRIBE operations
• generates Mock implementation of API that produces messages
• generates Tests that validate events produced against contract
• support for WS, Kafka, MQTT
• No support in Microcks for
• PUBLISH operation (that invites API clients to publish their events)
• No Mock Event Consumers and no Tests on “proper consumption”
• how useful would this be?
• other Async channels (JMS, AMQP, STOMP, NATS, SNS, SQS, Redis, RabbitMQ,…)
• Microcks installs with out of the box integrated Kafka broker and WebSocket server
Code Café Microcks - January 2022 27
Classificatie: vertrouwelijk
Steps
• Create Kafka Topic streetlight-dropbox
• Configure publishTopic in Kafka Binding
entry in Dapr components.yaml
Code Café Microcks - January 2022 28
out
in
app-id(s) to route to
Classificatie: vertrouwelijk
Steps (2)
• Run a Dapr application with the components.yaml
dapr run –components-path .
• Remember the HTTP port at which Dapr is listening
• Publish an event through Dapr
curl -X POST http://localhost:37919/v1.0/bindings/advanced-street-light-
destination 
-H "Content-Type: application/json" 
-d '{"data": {"streetlightId": "dev99",.... } , "operation": "create"}'
Code Café Microcks - January 2022 29
Classificatie: vertrouwelijk
Steps (3)
• Check the event in Kafdrop
• Run test in Microcks UI on endpoint kafka://kafka:19092/streetlight-dropbox
• Publish an(other) event (for the test to consume)
Code Café Microcks - January 2022 30
Classificatie: vertrouwelijk
Code Café Microcks - January 2022 31
Classificatie: vertrouwelijk
To create Kafka consuming application with Dapr
• Create Kafka Binding entry in components.yaml
• name of the binding
• endpoints for one or more Kafka brokers
• topic(s) to subscribe to
• consumergroup name
• the applications to route
incoming messages to
Code Café Microcks - January 2022 32
Classificatie: vertrouwelijk
Create generic application
that can receive POST request (from Dapr side car)
• Incoming messages are posted to application from side car at path equal to /binding-name
in components.yaml (in this case: /advanced-street-light-destination)
Code Café Microcks - January 2022 33
Classificatie: vertrouwelijk
Run Consuming application as Daprized application
dapr run --app-id street-light-consumer --app-port 3000 node app.js -
-components-path .
• Run this command in the directory that contains both app.js and components.yaml
• Make sure that:
• app-port corresponds with the port on which the application listens
• app-id corresponds with the value used in the scopes element in the
components.yaml file
Code Café Microcks - January 2022 34
Classificatie: vertrouwelijk
Code Café Microcks - January 2022 35

More Related Content

What's hot

Introduction to Kafka with Spring Integration
Introduction to Kafka with Spring IntegrationIntroduction to Kafka with Spring Integration
Introduction to Kafka with Spring IntegrationBorislav Markov
 
Best Practices for Middleware and Integration Architecture Modernization with...
Best Practices for Middleware and Integration Architecture Modernization with...Best Practices for Middleware and Integration Architecture Modernization with...
Best Practices for Middleware and Integration Architecture Modernization with...Claus Ibsen
 
Apicurio Registry: Event-driven APIs & Schema governance for Apache Kafka | F...
Apicurio Registry: Event-driven APIs & Schema governance for Apache Kafka | F...Apicurio Registry: Event-driven APIs & Schema governance for Apache Kafka | F...
Apicurio Registry: Event-driven APIs & Schema governance for Apache Kafka | F...HostedbyConfluent
 
Rancher 2.0 Technical Deep Dive
Rancher 2.0 Technical Deep DiveRancher 2.0 Technical Deep Dive
Rancher 2.0 Technical Deep DiveLINE Corporation
 
Observability: Beyond the Three Pillars with Spring
Observability: Beyond the Three Pillars with SpringObservability: Beyond the Three Pillars with Spring
Observability: Beyond the Three Pillars with SpringVMware Tanzu
 
Monitoring Kubernetes with Prometheus
Monitoring Kubernetes with PrometheusMonitoring Kubernetes with Prometheus
Monitoring Kubernetes with PrometheusGrafana Labs
 
Rancher and Kubernetes Best Practices
Rancher and  Kubernetes Best PracticesRancher and  Kubernetes Best Practices
Rancher and Kubernetes Best PracticesAvinash Patil
 
Grafana Loki: like Prometheus, but for Logs
Grafana Loki: like Prometheus, but for LogsGrafana Loki: like Prometheus, but for Logs
Grafana Loki: like Prometheus, but for LogsMarco Pracucci
 
Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...
Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...
Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...Amazon Web Services
 
Bringing Kafka Without Zookeeper Into Production with Colin McCabe | Kafka Su...
Bringing Kafka Without Zookeeper Into Production with Colin McCabe | Kafka Su...Bringing Kafka Without Zookeeper Into Production with Colin McCabe | Kafka Su...
Bringing Kafka Without Zookeeper Into Production with Colin McCabe | Kafka Su...HostedbyConfluent
 
The Power of GitOps with Flux & GitOps Toolkit
The Power of GitOps with Flux & GitOps ToolkitThe Power of GitOps with Flux & GitOps Toolkit
The Power of GitOps with Flux & GitOps ToolkitWeaveworks
 
Scaling Push Messaging for Millions of Netflix Devices
Scaling Push Messaging for Millions of Netflix DevicesScaling Push Messaging for Millions of Netflix Devices
Scaling Push Messaging for Millions of Netflix DevicesSusheel Aroskar
 
Confluent Operator as Cloud-Native Kafka Operator for Kubernetes
Confluent Operator as Cloud-Native Kafka Operator for KubernetesConfluent Operator as Cloud-Native Kafka Operator for Kubernetes
Confluent Operator as Cloud-Native Kafka Operator for KubernetesKai Wähner
 
Walking through the Spring Stack for Apache Kafka with Soby Chacko | Kafka S...
 Walking through the Spring Stack for Apache Kafka with Soby Chacko | Kafka S... Walking through the Spring Stack for Apache Kafka with Soby Chacko | Kafka S...
Walking through the Spring Stack for Apache Kafka with Soby Chacko | Kafka S...HostedbyConfluent
 
knolx of KubeCost & Infracost
knolx of KubeCost & Infracostknolx of KubeCost & Infracost
knolx of KubeCost & InfracostKnoldus Inc.
 
Micro services Architecture
Micro services ArchitectureMicro services Architecture
Micro services ArchitectureAraf Karsh Hamid
 
Spring Boot+Kafka: the New Enterprise Platform
Spring Boot+Kafka: the New Enterprise PlatformSpring Boot+Kafka: the New Enterprise Platform
Spring Boot+Kafka: the New Enterprise PlatformVMware Tanzu
 

What's hot (20)

Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
Introduction to Kafka with Spring Integration
Introduction to Kafka with Spring IntegrationIntroduction to Kafka with Spring Integration
Introduction to Kafka with Spring Integration
 
Best Practices for Middleware and Integration Architecture Modernization with...
Best Practices for Middleware and Integration Architecture Modernization with...Best Practices for Middleware and Integration Architecture Modernization with...
Best Practices for Middleware and Integration Architecture Modernization with...
 
Apicurio Registry: Event-driven APIs & Schema governance for Apache Kafka | F...
Apicurio Registry: Event-driven APIs & Schema governance for Apache Kafka | F...Apicurio Registry: Event-driven APIs & Schema governance for Apache Kafka | F...
Apicurio Registry: Event-driven APIs & Schema governance for Apache Kafka | F...
 
Rancher 2.0 Technical Deep Dive
Rancher 2.0 Technical Deep DiveRancher 2.0 Technical Deep Dive
Rancher 2.0 Technical Deep Dive
 
Observability: Beyond the Three Pillars with Spring
Observability: Beyond the Three Pillars with SpringObservability: Beyond the Three Pillars with Spring
Observability: Beyond the Three Pillars with Spring
 
Monitoring Kubernetes with Prometheus
Monitoring Kubernetes with PrometheusMonitoring Kubernetes with Prometheus
Monitoring Kubernetes with Prometheus
 
Rancher and Kubernetes Best Practices
Rancher and  Kubernetes Best PracticesRancher and  Kubernetes Best Practices
Rancher and Kubernetes Best Practices
 
Edge architecture ieee international conference on cloud engineering
Edge architecture   ieee international conference on cloud engineeringEdge architecture   ieee international conference on cloud engineering
Edge architecture ieee international conference on cloud engineering
 
Grafana Loki: like Prometheus, but for Logs
Grafana Loki: like Prometheus, but for LogsGrafana Loki: like Prometheus, but for Logs
Grafana Loki: like Prometheus, but for Logs
 
Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...
Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...
Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...
 
Bringing Kafka Without Zookeeper Into Production with Colin McCabe | Kafka Su...
Bringing Kafka Without Zookeeper Into Production with Colin McCabe | Kafka Su...Bringing Kafka Without Zookeeper Into Production with Colin McCabe | Kafka Su...
Bringing Kafka Without Zookeeper Into Production with Colin McCabe | Kafka Su...
 
The Power of GitOps with Flux & GitOps Toolkit
The Power of GitOps with Flux & GitOps ToolkitThe Power of GitOps with Flux & GitOps Toolkit
The Power of GitOps with Flux & GitOps Toolkit
 
Scaling Push Messaging for Millions of Netflix Devices
Scaling Push Messaging for Millions of Netflix DevicesScaling Push Messaging for Millions of Netflix Devices
Scaling Push Messaging for Millions of Netflix Devices
 
Confluent Operator as Cloud-Native Kafka Operator for Kubernetes
Confluent Operator as Cloud-Native Kafka Operator for KubernetesConfluent Operator as Cloud-Native Kafka Operator for Kubernetes
Confluent Operator as Cloud-Native Kafka Operator for Kubernetes
 
Walking through the Spring Stack for Apache Kafka with Soby Chacko | Kafka S...
 Walking through the Spring Stack for Apache Kafka with Soby Chacko | Kafka S... Walking through the Spring Stack for Apache Kafka with Soby Chacko | Kafka S...
Walking through the Spring Stack for Apache Kafka with Soby Chacko | Kafka S...
 
knolx of KubeCost & Infracost
knolx of KubeCost & Infracostknolx of KubeCost & Infracost
knolx of KubeCost & Infracost
 
Envoy and Kafka
Envoy and KafkaEnvoy and Kafka
Envoy and Kafka
 
Micro services Architecture
Micro services ArchitectureMicro services Architecture
Micro services Architecture
 
Spring Boot+Kafka: the New Enterprise Platform
Spring Boot+Kafka: the New Enterprise PlatformSpring Boot+Kafka: the New Enterprise Platform
Spring Boot+Kafka: the New Enterprise Platform
 

Similar to Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2022)

Case-Study: Building Real-Time Applications at Scale-Cyclist Crash Detection ...
Case-Study: Building Real-Time Applications at Scale-Cyclist Crash Detection ...Case-Study: Building Real-Time Applications at Scale-Cyclist Crash Detection ...
Case-Study: Building Real-Time Applications at Scale-Cyclist Crash Detection ...HostedbyConfluent
 
All Streams Ahead! ksqlDB Workshop ANZ
All Streams Ahead! ksqlDB Workshop ANZAll Streams Ahead! ksqlDB Workshop ANZ
All Streams Ahead! ksqlDB Workshop ANZconfluent
 
[Workshop] API Management in Microservices Architecture
[Workshop] API Management in Microservices Architecture[Workshop] API Management in Microservices Architecture
[Workshop] API Management in Microservices ArchitectureWSO2
 
Devoxx Morocco 2016 - Microservices with Kafka
Devoxx Morocco 2016 - Microservices with KafkaDevoxx Morocco 2016 - Microservices with Kafka
Devoxx Morocco 2016 - Microservices with KafkaLászló-Róbert Albert
 
Building Microservices with Apache Kafka
Building Microservices with Apache KafkaBuilding Microservices with Apache Kafka
Building Microservices with Apache Kafkaconfluent
 
Developing Serverless Applications on Kubernetes with Knative
Developing Serverless Applications on Kubernetes with KnativeDeveloping Serverless Applications on Kubernetes with Knative
Developing Serverless Applications on Kubernetes with KnativeVMware Tanzu
 
Introducing Kafka's Streams API
Introducing Kafka's Streams APIIntroducing Kafka's Streams API
Introducing Kafka's Streams APIconfluent
 
Stateful Microservices with Apache Kafka and Spring Cloud Stream with Jan Svo...
Stateful Microservices with Apache Kafka and Spring Cloud Stream with Jan Svo...Stateful Microservices with Apache Kafka and Spring Cloud Stream with Jan Svo...
Stateful Microservices with Apache Kafka and Spring Cloud Stream with Jan Svo...HostedbyConfluent
 
Data Engineer's Lunch #86: Building Real-Time Applications at Scale: A Case S...
Data Engineer's Lunch #86: Building Real-Time Applications at Scale: A Case S...Data Engineer's Lunch #86: Building Real-Time Applications at Scale: A Case S...
Data Engineer's Lunch #86: Building Real-Time Applications at Scale: A Case S...Anant Corporation
 
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
 
Beyond the Brokers: A Tour of the Kafka Ecosystem
Beyond the Brokers: A Tour of the Kafka EcosystemBeyond the Brokers: A Tour of the Kafka Ecosystem
Beyond the Brokers: A Tour of the Kafka Ecosystemconfluent
 
Beyond the brokers - A tour of the Kafka ecosystem
Beyond the brokers - A tour of the Kafka ecosystemBeyond the brokers - A tour of the Kafka ecosystem
Beyond the brokers - A tour of the Kafka ecosystemDamien Gasparina
 
HHM 6887 Managing Your Scalable Applications in an MQ Hybrid Cloud World
HHM 6887 Managing Your Scalable Applications in an MQ Hybrid Cloud WorldHHM 6887 Managing Your Scalable Applications in an MQ Hybrid Cloud World
HHM 6887 Managing Your Scalable Applications in an MQ Hybrid Cloud Worldmatthew1001
 
Cloud native Kafka | Sascha Holtbruegge and Margaretha Erber, HiveMQ
Cloud native Kafka | Sascha Holtbruegge and Margaretha Erber, HiveMQCloud native Kafka | Sascha Holtbruegge and Margaretha Erber, HiveMQ
Cloud native Kafka | Sascha Holtbruegge and Margaretha Erber, HiveMQHostedbyConfluent
 
Building Stream Processing Applications with Apache Kafka's Exactly-Once Proc...
Building Stream Processing Applications with Apache Kafka's Exactly-Once Proc...Building Stream Processing Applications with Apache Kafka's Exactly-Once Proc...
Building Stream Processing Applications with Apache Kafka's Exactly-Once Proc...Matthias J. Sax
 
apidays LIVE Australia - Productising your Microservices as API Products by P...
apidays LIVE Australia - Productising your Microservices as API Products by P...apidays LIVE Australia - Productising your Microservices as API Products by P...
apidays LIVE Australia - Productising your Microservices as API Products by P...apidays
 
Flexible Authentication Strategies with SASL/OAUTHBEARER (Michael Kaminski, T...
Flexible Authentication Strategies with SASL/OAUTHBEARER (Michael Kaminski, T...Flexible Authentication Strategies with SASL/OAUTHBEARER (Michael Kaminski, T...
Flexible Authentication Strategies with SASL/OAUTHBEARER (Michael Kaminski, T...confluent
 
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...OpenWhisk
 
Hybrid Messaging with IBM Bluemix
Hybrid Messaging with IBM BluemixHybrid Messaging with IBM Bluemix
Hybrid Messaging with IBM Bluemixmatthew1001
 
Red Hat and kubernetes: awesome stuff coming your way
Red Hat and kubernetes:  awesome stuff coming your wayRed Hat and kubernetes:  awesome stuff coming your way
Red Hat and kubernetes: awesome stuff coming your wayJohannes Brännström
 

Similar to Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2022) (20)

Case-Study: Building Real-Time Applications at Scale-Cyclist Crash Detection ...
Case-Study: Building Real-Time Applications at Scale-Cyclist Crash Detection ...Case-Study: Building Real-Time Applications at Scale-Cyclist Crash Detection ...
Case-Study: Building Real-Time Applications at Scale-Cyclist Crash Detection ...
 
All Streams Ahead! ksqlDB Workshop ANZ
All Streams Ahead! ksqlDB Workshop ANZAll Streams Ahead! ksqlDB Workshop ANZ
All Streams Ahead! ksqlDB Workshop ANZ
 
[Workshop] API Management in Microservices Architecture
[Workshop] API Management in Microservices Architecture[Workshop] API Management in Microservices Architecture
[Workshop] API Management in Microservices Architecture
 
Devoxx Morocco 2016 - Microservices with Kafka
Devoxx Morocco 2016 - Microservices with KafkaDevoxx Morocco 2016 - Microservices with Kafka
Devoxx Morocco 2016 - Microservices with Kafka
 
Building Microservices with Apache Kafka
Building Microservices with Apache KafkaBuilding Microservices with Apache Kafka
Building Microservices with Apache Kafka
 
Developing Serverless Applications on Kubernetes with Knative
Developing Serverless Applications on Kubernetes with KnativeDeveloping Serverless Applications on Kubernetes with Knative
Developing Serverless Applications on Kubernetes with Knative
 
Introducing Kafka's Streams API
Introducing Kafka's Streams APIIntroducing Kafka's Streams API
Introducing Kafka's Streams API
 
Stateful Microservices with Apache Kafka and Spring Cloud Stream with Jan Svo...
Stateful Microservices with Apache Kafka and Spring Cloud Stream with Jan Svo...Stateful Microservices with Apache Kafka and Spring Cloud Stream with Jan Svo...
Stateful Microservices with Apache Kafka and Spring Cloud Stream with Jan Svo...
 
Data Engineer's Lunch #86: Building Real-Time Applications at Scale: A Case S...
Data Engineer's Lunch #86: Building Real-Time Applications at Scale: A Case S...Data Engineer's Lunch #86: Building Real-Time Applications at Scale: A Case S...
Data Engineer's Lunch #86: Building Real-Time Applications at Scale: A Case S...
 
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...
 
Beyond the Brokers: A Tour of the Kafka Ecosystem
Beyond the Brokers: A Tour of the Kafka EcosystemBeyond the Brokers: A Tour of the Kafka Ecosystem
Beyond the Brokers: A Tour of the Kafka Ecosystem
 
Beyond the brokers - A tour of the Kafka ecosystem
Beyond the brokers - A tour of the Kafka ecosystemBeyond the brokers - A tour of the Kafka ecosystem
Beyond the brokers - A tour of the Kafka ecosystem
 
HHM 6887 Managing Your Scalable Applications in an MQ Hybrid Cloud World
HHM 6887 Managing Your Scalable Applications in an MQ Hybrid Cloud WorldHHM 6887 Managing Your Scalable Applications in an MQ Hybrid Cloud World
HHM 6887 Managing Your Scalable Applications in an MQ Hybrid Cloud World
 
Cloud native Kafka | Sascha Holtbruegge and Margaretha Erber, HiveMQ
Cloud native Kafka | Sascha Holtbruegge and Margaretha Erber, HiveMQCloud native Kafka | Sascha Holtbruegge and Margaretha Erber, HiveMQ
Cloud native Kafka | Sascha Holtbruegge and Margaretha Erber, HiveMQ
 
Building Stream Processing Applications with Apache Kafka's Exactly-Once Proc...
Building Stream Processing Applications with Apache Kafka's Exactly-Once Proc...Building Stream Processing Applications with Apache Kafka's Exactly-Once Proc...
Building Stream Processing Applications with Apache Kafka's Exactly-Once Proc...
 
apidays LIVE Australia - Productising your Microservices as API Products by P...
apidays LIVE Australia - Productising your Microservices as API Products by P...apidays LIVE Australia - Productising your Microservices as API Products by P...
apidays LIVE Australia - Productising your Microservices as API Products by P...
 
Flexible Authentication Strategies with SASL/OAUTHBEARER (Michael Kaminski, T...
Flexible Authentication Strategies with SASL/OAUTHBEARER (Michael Kaminski, T...Flexible Authentication Strategies with SASL/OAUTHBEARER (Michael Kaminski, T...
Flexible Authentication Strategies with SASL/OAUTHBEARER (Michael Kaminski, T...
 
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
 
Hybrid Messaging with IBM Bluemix
Hybrid Messaging with IBM BluemixHybrid Messaging with IBM Bluemix
Hybrid Messaging with IBM Bluemix
 
Red Hat and kubernetes: awesome stuff coming your way
Red Hat and kubernetes:  awesome stuff coming your wayRed Hat and kubernetes:  awesome stuff coming your way
Red Hat and kubernetes: awesome stuff coming your way
 

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
 
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
 
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
 
Software Engineering as the Next Level Up from Programming (Oracle Groundbrea...
Software Engineering as the Next Level Up from Programming (Oracle Groundbrea...Software Engineering as the Next Level Up from Programming (Oracle Groundbrea...
Software Engineering as the Next Level Up from Programming (Oracle Groundbrea...Lucas Jellema
 
Triple C - Centralize, Cloudify and Consolidate Dozens of Oracle Databases (O...
Triple C - Centralize, Cloudify and Consolidate Dozens of Oracle Databases (O...Triple C - Centralize, Cloudify and Consolidate Dozens of Oracle Databases (O...
Triple C - Centralize, Cloudify and Consolidate Dozens of Oracle Databases (O...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...
 
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)
 
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 ...
 
Software Engineering as the Next Level Up from Programming (Oracle Groundbrea...
Software Engineering as the Next Level Up from Programming (Oracle Groundbrea...Software Engineering as the Next Level Up from Programming (Oracle Groundbrea...
Software Engineering as the Next Level Up from Programming (Oracle Groundbrea...
 
Triple C - Centralize, Cloudify and Consolidate Dozens of Oracle Databases (O...
Triple C - Centralize, Cloudify and Consolidate Dozens of Oracle Databases (O...Triple C - Centralize, Cloudify and Consolidate Dozens of Oracle Databases (O...
Triple C - Centralize, Cloudify and Consolidate Dozens of Oracle Databases (O...
 

Recently uploaded

why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 

Recently uploaded (20)

Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 

Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2022)

  • 1. Classificatie: vertrouwelijk Conclusion Code Café Microcks – testing & mocking Async APIs 11-01-2022
  • 2. Classificatie: vertrouwelijk The Interface of a Service API HTTP REST/JSON Code Café Microcks - January 2022 µ HTTP/2 gRPC/ProtoBuf HTTP SOAP/XML Kafka MQTT WebSocket HTTP JMS AMQP STOMP NATS, SNS, SQS, Redis, RabbitMQ Kafka MQTT WebSocket HTTP JMS AMQP STOMP NATS, SNS, SQS, Redis, RabbitMQ 2
  • 3. Classificatie: vertrouwelijk AsyncAPI • Design Time • Event Driven Architecture • Pub/Sub • Asynchronous Interactions • API Design • Interface Definition/Contract Code Café Microcks - January 2022 3
  • 4. Classificatie: vertrouwelijk AsyncAPI • Compare OpenAPI • Describes an API (in yaml or json) to consumers • invitation to publish events on a certain topic on which the API is subscribed and from which it consumes • invitation to subscribe to a certain topic (that the API publishes to) • the message structure that is actually published or consumed • Used to generate code for publishing or consuming • and provide documentation for developers and testers • Used to drive Mock-tools to publish the event said to be consumed • Used to drive Test-tools-tools to listen for the events claimed to be published • Sponsored by Solace, Postman, IBM, SalesForce, MuleSoft, IQVia, Tibco, SAP, Slack Code Café Microcks - January 2022 4
  • 5. Classificatie: vertrouwelijk AsynchAPI Interface Definition • Define for an API • the Channel (queue, topic, …) the API subscribes to • the message type the API expects to consume • the Channel the API publishes to • the message type the API publishes • the Servers on which the API connects • Kafka Broker, HTTP url endpoint, RabbitMQ Broker endpoint • link between Channel and Server(s) (channel binding) • Developer and tools can interpret this definition • generate code, stubs, mocks, tests Code Café Microcks - January 2022 5 PUBLISH SUBSCRIBE
  • 6. Classificatie: vertrouwelijk Testing and Mocking Async APIs with Microcks Code Café Microcks - January 2022 6 load & interpret AsyncAPI definitions Mock implementation that publishes events to channel (just as the real API would do) Test that subscribes and consumes messages that API promises to publish Kafka MQTT WebSocket Kafka MQTT WebSocket
  • 7. Classificatie: vertrouwelijk application.properties Running Microcks with Docker Compose (with async-api enabled) Code Café Microcks - January 2022 7 Kafka docker-compose.yml docker-compose-async-addon.yml kafdrop-addon.yml Kaf Drop Mongo DB Key Cloak microcks- postman microcks async- minion Zoo keeper UI UI UI features.properties
  • 8. Classificatie: vertrouwelijk Code Café Microcks - January 2022 9
  • 9. Classificatie: vertrouwelijk Microcks and Async APIs • Prepare AsyncAPI interface definition • message definitions, channel name • examples (used for mocked messages) – including function expressions such as {{now(yyyy-mm-dd)}}, {{uuid()}}, {{randomFirstName()}} • Import API contract in Microcks • Microcks will automatically • validate interface and exposes API documentation • start publishing mock messages to default channel binding (i.e. Kafka) • when other channel bindings are declared, then these too (WS, MQTT) • Consume mock messages in event client application under development • … Code Café Microcks - January 2022 10
  • 10. Classificatie: vertrouwelijk WS MQTT Application can Consume Correct Messages through Real Channel published by generated Mock Code Café Microcks - January 2022 11 load & interpret AsyncAPI definitions Mock implementation that publishes events to channel (just as the real API would do) Kafka Kaf Drop UI Application under Development subscribe & consume Event Client can be generated from Async API interface definition Mock API implemen- tation
  • 11. Classificatie: vertrouwelijk Code Café Microcks - January 2022 12 Translated by Microcks to topic CodeCafeAdvancedStreetlightsAPI-1.1-smartylighting- codecafe-streetlights-event-lighting-measured
  • 12. Classificatie: vertrouwelijk Code Café Microcks - January 2022 13
  • 13. Classificatie: vertrouwelijk Code Café Microcks - January 2022 14 load & interpret AsyncAPI definitions
  • 14. Classificatie: vertrouwelijk Code Café Microcks - January 2022 15
  • 15. Classificatie: vertrouwelijk Code Café Microcks - January 2022 16
  • 16. Classificatie: vertrouwelijk Code Café Microcks - January 2022 17
  • 17. Classificatie: vertrouwelijk Code Café Microcks - January 2022 18 load & interpret AsyncAPI definitions Kafka Kaf Drop UI Mock API implemen- tation
  • 18. Classificatie: vertrouwelijk Code Café Microcks - January 2022 19
  • 19. Classificatie: vertrouwelijk Code Café Microcks - January 2022 20 Kafka Application under Development subscribe & consume Mock API implemen- tation
  • 20. Classificatie: vertrouwelijk Microcks and Async APIs • Prepare AsyncAPI interface definition • message definitions, channel name • Import API contract in Microcks • Microcks automatically • validates interface and exposes API documentation • starts publishing mock messages to default channel binding (i.e. Kafka) • when other channel bindings are declared, then these too (WS, MQTT) • Consume mock messages in event client application under development • Create Test in Microcks: validate messages published by application under test to a specific endpoint • messages to validate can be consumed from topic on Kafka Broker, MQTT Broker or WebSocket Server Code Café Microcks - January 2022 21
  • 21. Classificatie: vertrouwelijk Microcks can generate and run tests on the messages published by producing application Code Café Microcks - January 2022 22 load & interpret AsyncAPI definitions Kafka Application under Development MQTT Web Socket Test that subscribes and consumes messages that API promises to publish subscribe & consume Event producing code can be generated from Async API interface definition
  • 22. Classificatie: vertrouwelijk Validate the example messages produced by Mock Code Café Microcks - January 2022 23 load & interpret AsyncAPI definitions Kafka Test that subscribes and consumes messages that API promises to publish load & interpret AsyncAPI definitions Mock API implemen- tation Validate correctness of Mock-produced events
  • 23. Classificatie: vertrouwelijk Validate the example messages produced by Mock Code Café Microcks - January 2022 24
  • 24. Classificatie: vertrouwelijk Validate the example messages produced by Mock Code Café Microcks - January 2022 25 Change message schema in AysyncAPI Examples do not comply Test fails load & interpret AsyncAPI definitions Reload AsyncAPI definition
  • 25. Classificatie: vertrouwelijk Validate the example messages produced by Mock Code Café Microcks - January 2022 26 Test on Mock generated messages fails
  • 26. Classificatie: vertrouwelijk Conclusion on Microcks & Async APIs • AsyncAPI is standard for defining API interface for consuming or producing messages asynchronously • via queue | event broker | web socket • Microcks understands AsyncAPI contracts – but only SUBSCRIBE operations • generates Mock implementation of API that produces messages • generates Tests that validate events produced against contract • support for WS, Kafka, MQTT • No support in Microcks for • PUBLISH operation (that invites API clients to publish their events) • No Mock Event Consumers and no Tests on “proper consumption” • how useful would this be? • other Async channels (JMS, AMQP, STOMP, NATS, SNS, SQS, Redis, RabbitMQ,…) • Microcks installs with out of the box integrated Kafka broker and WebSocket server Code Café Microcks - January 2022 27
  • 27. Classificatie: vertrouwelijk Steps • Create Kafka Topic streetlight-dropbox • Configure publishTopic in Kafka Binding entry in Dapr components.yaml Code Café Microcks - January 2022 28 out in app-id(s) to route to
  • 28. Classificatie: vertrouwelijk Steps (2) • Run a Dapr application with the components.yaml dapr run –components-path . • Remember the HTTP port at which Dapr is listening • Publish an event through Dapr curl -X POST http://localhost:37919/v1.0/bindings/advanced-street-light- destination -H "Content-Type: application/json" -d '{"data": {"streetlightId": "dev99",.... } , "operation": "create"}' Code Café Microcks - January 2022 29
  • 29. Classificatie: vertrouwelijk Steps (3) • Check the event in Kafdrop • Run test in Microcks UI on endpoint kafka://kafka:19092/streetlight-dropbox • Publish an(other) event (for the test to consume) Code Café Microcks - January 2022 30
  • 30. Classificatie: vertrouwelijk Code Café Microcks - January 2022 31
  • 31. Classificatie: vertrouwelijk To create Kafka consuming application with Dapr • Create Kafka Binding entry in components.yaml • name of the binding • endpoints for one or more Kafka brokers • topic(s) to subscribe to • consumergroup name • the applications to route incoming messages to Code Café Microcks - January 2022 32
  • 32. Classificatie: vertrouwelijk Create generic application that can receive POST request (from Dapr side car) • Incoming messages are posted to application from side car at path equal to /binding-name in components.yaml (in this case: /advanced-street-light-destination) Code Café Microcks - January 2022 33
  • 33. Classificatie: vertrouwelijk Run Consuming application as Daprized application dapr run --app-id street-light-consumer --app-port 3000 node app.js - -components-path . • Run this command in the directory that contains both app.js and components.yaml • Make sure that: • app-port corresponds with the port on which the application listens • app-id corresponds with the value used in the scopes element in the components.yaml file Code Café Microcks - January 2022 34
  • 34. Classificatie: vertrouwelijk Code Café Microcks - January 2022 35

Editor's Notes

  1. https://forms.office.com/r/QXtaHEtAAH
  2. https://microcks.io/documentation/using/advanced/templates/#function-expressions
  3. https://microcks.io/blog/apache-kafka-mocking-testing/
  4. https://microcks.io/blog/apache-kafka-mocking-testing/
  5. // start application using: // dapr run --app-id street-light-consumer --app-port 3000 node app.js --components-path . const express = require('express'); const bodyParser = require('body-parser'); require('isomorphic-fetch'); const app = express(); app.use(bodyParser.json()); const port = 3000; app.post('/advanced-street-light-destination', (req, res) => {     console.log("Message received from Kafka");     console.log(req.headers);     console.log(req.body);     res.status(200).send(); }); app.listen(port, () => console.log(`Node App listening on port ${port}!`));