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

Spring Cloud Function: Where We Were, Where We Are, and Where We’re Going
Spring Cloud Function: Where We Were, Where We Are, and Where We’re GoingSpring Cloud Function: Where We Were, Where We Are, and Where We’re Going
Spring Cloud Function: Where We Were, Where We Are, and Where We’re GoingVMware Tanzu
 
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
 
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREMicroservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREAraf Karsh Hamid
 
Being Functional on Reactive Streams with Spring Reactor
Being Functional on Reactive Streams with Spring ReactorBeing Functional on Reactive Streams with Spring Reactor
Being Functional on Reactive Streams with Spring ReactorMax Huang
 
Clean architecture
Clean architectureClean architecture
Clean architectureandbed
 
Speed-Up Kafka Delivery with AsyncAPI & Microcks | Hugo Guerrero, Red Hat
Speed-Up Kafka Delivery with AsyncAPI & Microcks | Hugo Guerrero, Red HatSpeed-Up Kafka Delivery with AsyncAPI & Microcks | Hugo Guerrero, Red Hat
Speed-Up Kafka Delivery with AsyncAPI & Microcks | Hugo Guerrero, Red HatHostedbyConfluent
 
Mock Server Using WireMock
Mock Server Using WireMockMock Server Using WireMock
Mock Server Using WireMockGlobant
 
Project Reactor Now and Tomorrow
Project Reactor Now and TomorrowProject Reactor Now and Tomorrow
Project Reactor Now and TomorrowVMware Tanzu
 
Implementing security requirements for banking API system using Open Source ...
 Implementing security requirements for banking API system using Open Source ... Implementing security requirements for banking API system using Open Source ...
Implementing security requirements for banking API system using Open Source ...Yuichi Nakamura
 
Developing event-driven microservices with event sourcing and CQRS (svcc, sv...
Developing event-driven microservices with event sourcing and CQRS  (svcc, sv...Developing event-driven microservices with event sourcing and CQRS  (svcc, sv...
Developing event-driven microservices with event sourcing and CQRS (svcc, sv...Chris Richardson
 
Exposing services with Azure API Management
Exposing services with Azure API ManagementExposing services with Azure API Management
Exposing services with Azure API ManagementCallon Campbell
 
Real Life Clean Architecture
Real Life Clean ArchitectureReal Life Clean Architecture
Real Life Clean ArchitectureMattia Battiston
 
Designing APIs and Microservices Using Domain-Driven Design
Designing APIs and Microservices Using Domain-Driven DesignDesigning APIs and Microservices Using Domain-Driven Design
Designing APIs and Microservices Using Domain-Driven DesignLaunchAny
 
Apache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & Partitioning
Apache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & PartitioningApache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & Partitioning
Apache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & PartitioningGuido Schmutz
 
Atlassian Bamboo Feature Overview
Atlassian Bamboo Feature OverviewAtlassian Bamboo Feature Overview
Atlassian Bamboo Feature OverviewJim Bethancourt
 
Distributed Tracing for Kafka with OpenTelemetry with Daniel Kim | Kafka Summ...
Distributed Tracing for Kafka with OpenTelemetry with Daniel Kim | Kafka Summ...Distributed Tracing for Kafka with OpenTelemetry with Daniel Kim | Kafka Summ...
Distributed Tracing for Kafka with OpenTelemetry with Daniel Kim | Kafka Summ...HostedbyConfluent
 
Breaking Dependencies Legacy Code - Cork Software Crafters - September 2019
Breaking Dependencies Legacy Code -  Cork Software Crafters - September 2019Breaking Dependencies Legacy Code -  Cork Software Crafters - September 2019
Breaking Dependencies Legacy Code - Cork Software Crafters - September 2019Paulo Clavijo
 

What's hot (20)

Docker Kubernetes Istio
Docker Kubernetes IstioDocker Kubernetes Istio
Docker Kubernetes Istio
 
Spring Cloud Function: Where We Were, Where We Are, and Where We’re Going
Spring Cloud Function: Where We Were, Where We Are, and Where We’re GoingSpring Cloud Function: Where We Were, Where We Are, and Where We’re Going
Spring Cloud Function: Where We Were, Where We Are, and Where We’re Going
 
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...
 
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREMicroservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SRE
 
Being Functional on Reactive Streams with Spring Reactor
Being Functional on Reactive Streams with Spring ReactorBeing Functional on Reactive Streams with Spring Reactor
Being Functional on Reactive Streams with Spring Reactor
 
Clean architecture
Clean architectureClean architecture
Clean architecture
 
Speed-Up Kafka Delivery with AsyncAPI & Microcks | Hugo Guerrero, Red Hat
Speed-Up Kafka Delivery with AsyncAPI & Microcks | Hugo Guerrero, Red HatSpeed-Up Kafka Delivery with AsyncAPI & Microcks | Hugo Guerrero, Red Hat
Speed-Up Kafka Delivery with AsyncAPI & Microcks | Hugo Guerrero, Red Hat
 
Docker Kubernetes Istio
Docker Kubernetes IstioDocker Kubernetes Istio
Docker Kubernetes Istio
 
Mock Server Using WireMock
Mock Server Using WireMockMock Server Using WireMock
Mock Server Using WireMock
 
Project Reactor Now and Tomorrow
Project Reactor Now and TomorrowProject Reactor Now and Tomorrow
Project Reactor Now and Tomorrow
 
Implementing security requirements for banking API system using Open Source ...
 Implementing security requirements for banking API system using Open Source ... Implementing security requirements for banking API system using Open Source ...
Implementing security requirements for banking API system using Open Source ...
 
Developing event-driven microservices with event sourcing and CQRS (svcc, sv...
Developing event-driven microservices with event sourcing and CQRS  (svcc, sv...Developing event-driven microservices with event sourcing and CQRS  (svcc, sv...
Developing event-driven microservices with event sourcing and CQRS (svcc, sv...
 
Exposing services with Azure API Management
Exposing services with Azure API ManagementExposing services with Azure API Management
Exposing services with Azure API Management
 
Kong API
Kong APIKong API
Kong API
 
Real Life Clean Architecture
Real Life Clean ArchitectureReal Life Clean Architecture
Real Life Clean Architecture
 
Designing APIs and Microservices Using Domain-Driven Design
Designing APIs and Microservices Using Domain-Driven DesignDesigning APIs and Microservices Using Domain-Driven Design
Designing APIs and Microservices Using Domain-Driven Design
 
Apache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & Partitioning
Apache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & PartitioningApache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & Partitioning
Apache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & Partitioning
 
Atlassian Bamboo Feature Overview
Atlassian Bamboo Feature OverviewAtlassian Bamboo Feature Overview
Atlassian Bamboo Feature Overview
 
Distributed Tracing for Kafka with OpenTelemetry with Daniel Kim | Kafka Summ...
Distributed Tracing for Kafka with OpenTelemetry with Daniel Kim | Kafka Summ...Distributed Tracing for Kafka with OpenTelemetry with Daniel Kim | Kafka Summ...
Distributed Tracing for Kafka with OpenTelemetry with Daniel Kim | Kafka Summ...
 
Breaking Dependencies Legacy Code - Cork Software Crafters - September 2019
Breaking Dependencies Legacy Code -  Cork Software Crafters - September 2019Breaking Dependencies Legacy Code -  Cork Software Crafters - September 2019
Breaking Dependencies Legacy Code - Cork Software Crafters - September 2019
 

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

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
 
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...
 
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
 

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

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
 
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
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
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
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
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
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
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
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
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
 

Recently uploaded (20)

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
 
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...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
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
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
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...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
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
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
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...
 

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}!`));