SlideShare a Scribd company logo
1 of 79
Download to read offline
© 2017 Pivotal Software, Inc. All rights reserved.
@kennybastani
Event-driven Architectures with
Spring Cloud
Kenny Bastani

Spring Developer Advocate @ Pivotal
1
Kenny Bastani
@kennybastani
Spring Developer Advocate
The methods
• Microservices
• Domain-driven Design
• Event sourcing
• CQRS
• Cloud native applications
The tools
• Apache Kafka
• Spring Cloud Stream
• Spring for Apache Kafka
• Spring Boot
• Spring Cloud
© 2017 Pivotal Software, Inc. All rights reserved.
@kennybastani
The agenda
• Event sourcing, a history
• Apache Kafka and the immutable log
• Event-driven microservices
• Spring Cloud Stream + Kafka
• Reference architecture
5
© 2017 Pivotal Software, Inc. All rights reserved.
@kennybastani
Event sourcing
A mystery, a history…
6
Origin story
Event Sourcing ensures that all changes to application state are
stored as a sequence of events. Not only can we query these events,
we can also use the event log to reconstruct past states.
We can determine the application state at any point in time. We do this
by starting with a blank state and rerunning the events up to a
particular time.


–Martin Fowler
Did Martin Fowler invent event sourcing?
Edgar Allan Poe (1804-1849)
We appreciate time by events alone. For this reason we
define time (somewhat improperly) as the succession of
events; but the fact itself--that events are our sole means
of appreciating time-- [leads to] the erroneous idea that
events are time--that the more numerous the events, the
longer the time; and the converse.
Did Edgar Allan Poe invent event sourcing?
Lol no…
Ship
Chip Log

15th-16th Century
Drag
Knots
Ocean
Log Reel
Log-line
© 2017 Pivotal Software, Inc. All rights reserved.
@kennybastani
The Poe connection
• Poe was obsessed with the idea of event sourcing for much of his life.
• But in his time, things were commonly measured using a form of event
sourcing, like the knots on the log-line for measuring the speed of
ships.
• Most software is built on metaphors. The problem is, we’ve forgotten
the metaphors have meaning.
13
Marginalia, Edgar Allan Poe, 1849
Marginalia, Edgar Allan Poe, 1849
Ship
Chip Log

15th-16th Century
Events (Objects)
Aggregation takes causal events across space and time and

summarizes it as a single object that’s easier to store in memory
Time
Space
Poe was a master of language, metaphor, and
abstraction. 



He understood the method of computation through
language before computers existed.
“An artist will always contrive to weave his illustrations into the metaphorical form.”
Also, Edgar Allan Poe, 1849
All great software is built on metaphors
Desktop
Cloud
Web
Infrastructure
Virtual MachineState
Events
Services
Logs
Kernel
Tablets
Application
Instance
Space
Timestamp
Memory
Containers
Database
Platform
Computer
Refactor
Files
Pages
Documents
The metaphors mean something
• There’s an underlying abstraction to our own humanity and it has an
intimate connection to the virtual world we are building
• The desktop computer replaced actual desktops by replacing the
abstract functionality of the desktop
• The virtual machine replaced the server by virtualizing the abstract
functionality of the hardware
But ultimately, it’s hard to keep track of
all the layers.
Eventually we get lost in abstraction.
Serverless
Microservices
NoSQL
SOA
Middleware
All confusing software is built on nonsense
DevOps
ESB
I’m not saying microservices, DevOps,
and serverless are nonsense.
I’m saying that metaphors make good
ideas more durable to nonsensical
interpretation.
Ship
Chip Log

15th-16th Century
Drag
Knots
Ocean
Log Reel
Log-line
LOG!
LOG!
© 2017 Pivotal Software, Inc. All rights reserved.
@kennybastani
Apache Kafka
The immutable log as the source of truth
29
Time-ordered events
Store state as a log of events
https://www.confluent.io/blog/messaging-single-source-truth/
Ship
Chip Log

15th-16th Century
Drag
Knots
Log Reel
Log-line
It’s the same thing, but way before software
Event sourcing isn’t just a good idea.
It’s how computers work.
Universal Turing Machine
So why aren’t we doing it everywhere?
Because storing state as an immutable
log of events for domain data didn’t
make sense in a time B.C.
B.C. = Before Cloud



– Andrew Clay Shafer

https://www.confluent.io/blog/messaging-single-source-truth/
https://www.confluent.io/blog/messaging-single-source-truth/
The Immutable Log
https://www.confluent.io/blog/messaging-single-source-truth/
So why now? Why are events a big deal?
© 2017 Pivotal Software, Inc. All rights reserved.
@kennybastani
Microservices!
Why do we need event-driven microservices?
First, let’s build an event sourced app
43
© 2017 Pivotal Software, Inc. All rights reserved.
@kennybastani
Spring Boot
A JVM micro-framework for building microservices
44
What is Spring Boot?
@kennybastani
spring boot
Spring Initializr for boostraping your applications
supports rapid development of
production-ready applications
and services
Apache Kafka & Spring
• Spring for Apache Kafka
– Integrates Kafka Streams API
– Integrates Kafka Messaging API
• Spring Cloud Stream
– Swappable binders for different message brokers
– Supports Kafka, RabbitMQ and more
Why do we need event-driven
microservices?
There are no foreign key constraints
between microservices.
Domain Graph
Domain
Relationships
No foreign key constraints across microservices
Foreign
Key
Relationships
Distributed joins are slow (reads)
Distributed transactions are brittle (writes)
Microservice joins
• Microservices are organized
using domain-driven design
• Microservices cannot own
domain data from two different
bounded contexts
• Complex joins (reads) are
inevitable
• Avoid distributed transactions
(write)
© 2017 Pivotal Software, Inc. All rights reserved.
@kennybastani
CQRS
Designing REST APIs to generate domain events
56
What is CQRS?
CQRS (Command Query Responsibility Segregation) is a
design pattern for turning events into materialized views
@spring_io
#springio17
Commands and Queries
COMMANDS

GENERATE

EVENTS
EVENTS

ARE BROADCASTED

TO OTHER SERVICES
EVENT LISTENERS

BUILD QUERY

MODELS
API GATEWAYS HIDE THE

IMPLEMENTATION DETAILS
© 2017 Pivotal Software, Inc. All rights reserved.
@kennybastani
Reference architecture
Creating a social network as microservices
63
How do you do friend of a friend
queries with microservices?
User User
UserUser User
Friend
Friend Friend
FriendFriend
User User
UserUser User
Friend
Friend Friend
FriendFriend
Day 1 of building microservices
Day 2 of building microservices…
Materialized views
Create aggregate views from event data
• Manage the storage of domain data that it owns.
• Produce the API contract for the domain data that it owns.
• Produce events when the state of any domain data changes.
• Maintain relationship integrity to domain data owned by other services.
• Subscribe to domain events emitted by separate domain services.
• Maintain an ordered immutable event log for events it receives.
• Create connected query projections of distributed domain data.
• Provide performant read-access to complex views of domain data.
Transaction logs
Event Sourcing
Aggregates can be used to generate the consistent state of any object
It provides an audit trail that can be replayed to generate the state of an object from
any point in time
It provides the many inputs necessary for analyzing data using event stream
processing
It enables the use of compensating transactions to rollback events leading to an
inconsistent application state
Event Types
Event Log
Event logs are transaction logs
Use event sourcing in your microservices to ensure consistency of your
distributed system
Don’t store state with microservices, store events
Use event stream processing to observe the active usage of your cloud
native application in real-time
© 2017 Pivotal Software, Inc. All rights reserved.
@kennybastani
Thanks! 



Q/A
79
https://github.com/kbastani/event-sourcing-microservices-basics
kennybastani.com

More Related Content

What's hot

7 17 event_logging_architecture 1
7 17 event_logging_architecture 17 17 event_logging_architecture 1
7 17 event_logging_architecture 1
ss_testing
 

What's hot (19)

Real time DQMM on Flink
Real time DQMM on FlinkReal time DQMM on Flink
Real time DQMM on Flink
 
Serverless Logging Architecture
Serverless Logging ArchitectureServerless Logging Architecture
Serverless Logging Architecture
 
Keystone event processing pipeline on a dockerized microservices architecture
Keystone event processing pipeline on a dockerized microservices architectureKeystone event processing pipeline on a dockerized microservices architecture
Keystone event processing pipeline on a dockerized microservices architecture
 
Cloud Conf Varna - Cloud Application with AWS Lambda functions
Cloud Conf Varna - Cloud Application with AWS Lambda functionsCloud Conf Varna - Cloud Application with AWS Lambda functions
Cloud Conf Varna - Cloud Application with AWS Lambda functions
 
Iot meets Serverless
Iot meets ServerlessIot meets Serverless
Iot meets Serverless
 
Kubernetes for Docker Users
Kubernetes for Docker UsersKubernetes for Docker Users
Kubernetes for Docker Users
 
PloneConf2017: serverless python for astronaut safety
PloneConf2017:  serverless python for astronaut safetyPloneConf2017:  serverless python for astronaut safety
PloneConf2017: serverless python for astronaut safety
 
Splunk @ HomeAway
Splunk @ HomeAwaySplunk @ HomeAway
Splunk @ HomeAway
 
Jets: The Ruby Serverless Framework Balkan Ruby Bulgaria 2019 May
Jets: The Ruby Serverless Framework Balkan Ruby Bulgaria 2019 MayJets: The Ruby Serverless Framework Balkan Ruby Bulgaria 2019 May
Jets: The Ruby Serverless Framework Balkan Ruby Bulgaria 2019 May
 
Closing Keynote: The Physics of Streaming | Tim Berglund, Confluent | Kafka S...
Closing Keynote: The Physics of Streaming | Tim Berglund, Confluent | Kafka S...Closing Keynote: The Physics of Streaming | Tim Berglund, Confluent | Kafka S...
Closing Keynote: The Physics of Streaming | Tim Berglund, Confluent | Kafka S...
 
Realtime Conf - Lightning node.js dev
Realtime Conf - Lightning node.js devRealtime Conf - Lightning node.js dev
Realtime Conf - Lightning node.js dev
 
1Spatial Australia: Introduction and getting started with fme 2017
1Spatial Australia: Introduction and getting started with fme 20171Spatial Australia: Introduction and getting started with fme 2017
1Spatial Australia: Introduction and getting started with fme 2017
 
7 17 event_logging_architecture 1
7 17 event_logging_architecture 17 17 event_logging_architecture 1
7 17 event_logging_architecture 1
 
High Volume Streaming Data: How Amazon Web Services is Changing Our Approach
High Volume Streaming Data: How Amazon Web Services is Changing Our ApproachHigh Volume Streaming Data: How Amazon Web Services is Changing Our Approach
High Volume Streaming Data: How Amazon Web Services is Changing Our Approach
 
My graduation project on Opsschool ('the elephant')
My graduation project on Opsschool ('the elephant')My graduation project on Opsschool ('the elephant')
My graduation project on Opsschool ('the elephant')
 
Continuously delivered scalable geoservies
Continuously delivered scalable geoserviesContinuously delivered scalable geoservies
Continuously delivered scalable geoservies
 
Delivering Cloud-Native Data Pipelines with Kafka Connect on Kubernetes | Vik...
Delivering Cloud-Native Data Pipelines with Kafka Connect on Kubernetes | Vik...Delivering Cloud-Native Data Pipelines with Kafka Connect on Kubernetes | Vik...
Delivering Cloud-Native Data Pipelines with Kafka Connect on Kubernetes | Vik...
 
Jets: The Ruby Serverless Framework Nashville Tennessee 2019 August
Jets: The Ruby Serverless Framework Nashville Tennessee 2019 AugustJets: The Ruby Serverless Framework Nashville Tennessee 2019 August
Jets: The Ruby Serverless Framework Nashville Tennessee 2019 August
 
I²: Interactive Real-Time Visualization for Streaming Data with Apache Flink ...
I²: Interactive Real-Time Visualization for Streaming Data with Apache Flink ...I²: Interactive Real-Time Visualization for Streaming Data with Apache Flink ...
I²: Interactive Real-Time Visualization for Streaming Data with Apache Flink ...
 

Similar to Event-driven Architectures with Spring Cloud - SpringOne Tour Dallas

Similar to Event-driven Architectures with Spring Cloud - SpringOne Tour Dallas (20)

Building Cloud Native Architectures with Spring
Building Cloud Native Architectures with SpringBuilding Cloud Native Architectures with Spring
Building Cloud Native Architectures with Spring
 
NATS Connect Live | SwimOS & NATS
NATS Connect Live | SwimOS & NATSNATS Connect Live | SwimOS & NATS
NATS Connect Live | SwimOS & NATS
 
Azure tales: a real world CQRS and ES Deep Dive - Andrea Saltarello
Azure tales: a real world CQRS and ES Deep Dive - Andrea SaltarelloAzure tales: a real world CQRS and ES Deep Dive - Andrea Saltarello
Azure tales: a real world CQRS and ES Deep Dive - Andrea Saltarello
 
Internet of Things: Patterns For Building Real World Applications
Internet of Things: Patterns For Building Real World ApplicationsInternet of Things: Patterns For Building Real World Applications
Internet of Things: Patterns For Building Real World Applications
 
Atmosphere Conference 2015: Oktawave Horizon Project: the future of real-time...
Atmosphere Conference 2015: Oktawave Horizon Project: the future of real-time...Atmosphere Conference 2015: Oktawave Horizon Project: the future of real-time...
Atmosphere Conference 2015: Oktawave Horizon Project: the future of real-time...
 
The Internet of Things: Patterns for building real world applications
The Internet of Things:  Patterns for building real world applicationsThe Internet of Things:  Patterns for building real world applications
The Internet of Things: Patterns for building real world applications
 
Deconstructing Monoliths with Domain Driven Design
Deconstructing Monoliths with Domain Driven DesignDeconstructing Monoliths with Domain Driven Design
Deconstructing Monoliths with Domain Driven Design
 
GPSTEC313_GPS Real-Time Data Processing with AWS Lambda Quickly, at Scale, an...
GPSTEC313_GPS Real-Time Data Processing with AWS Lambda Quickly, at Scale, an...GPSTEC313_GPS Real-Time Data Processing with AWS Lambda Quickly, at Scale, an...
GPSTEC313_GPS Real-Time Data Processing with AWS Lambda Quickly, at Scale, an...
 
Enabling Event Driven Architecture with PubSub+
Enabling Event Driven Architecture with PubSub+Enabling Event Driven Architecture with PubSub+
Enabling Event Driven Architecture with PubSub+
 
Event Processing Using Semantic Web Technologies
Event Processing Using Semantic Web TechnologiesEvent Processing Using Semantic Web Technologies
Event Processing Using Semantic Web Technologies
 
user Behavior Analysis with Session Windows and Apache Kafka's Streams API
user Behavior Analysis with Session Windows and Apache Kafka's Streams APIuser Behavior Analysis with Session Windows and Apache Kafka's Streams API
user Behavior Analysis with Session Windows and Apache Kafka's Streams API
 
Using Apache Kafka to Analyze Session Windows
Using Apache Kafka to Analyze Session WindowsUsing Apache Kafka to Analyze Session Windows
Using Apache Kafka to Analyze Session Windows
 
How to build a Distributed Serverless Polyglot Microservices IoT Platform us...
How to build a Distributed Serverless Polyglot Microservices IoT Platform us...How to build a Distributed Serverless Polyglot Microservices IoT Platform us...
How to build a Distributed Serverless Polyglot Microservices IoT Platform us...
 
Achieving a Serverless Development Experience
Achieving a Serverless Development ExperienceAchieving a Serverless Development Experience
Achieving a Serverless Development Experience
 
Domain events & Kafka in Ruby applications
Domain events & Kafka in Ruby applicationsDomain events & Kafka in Ruby applications
Domain events & Kafka in Ruby applications
 
Asynchronous micro-services and the unified log
Asynchronous micro-services and the unified logAsynchronous micro-services and the unified log
Asynchronous micro-services and the unified log
 
Design Microservice Architectures the Right Way
Design Microservice Architectures the Right WayDesign Microservice Architectures the Right Way
Design Microservice Architectures the Right Way
 
Serverless, oui mais pour quels usages ?
Serverless, oui mais pour quels usages ?Serverless, oui mais pour quels usages ?
Serverless, oui mais pour quels usages ?
 
An Auto-Documenting Event-Driven Architecture Using Async API and Inngest - A...
An Auto-Documenting Event-Driven Architecture Using Async API and Inngest - A...An Auto-Documenting Event-Driven Architecture Using Async API and Inngest - A...
An Auto-Documenting Event-Driven Architecture Using Async API and Inngest - A...
 
Event Sourcing, Stream Processing and Serverless (Benjamin Stopford, Confluen...
Event Sourcing, Stream Processing and Serverless (Benjamin Stopford, Confluen...Event Sourcing, Stream Processing and Serverless (Benjamin Stopford, Confluen...
Event Sourcing, Stream Processing and Serverless (Benjamin Stopford, Confluen...
 

More from VMware Tanzu

More from VMware Tanzu (20)

Spring into AI presented by Dan Vega 5/14
Spring into AI presented by Dan Vega 5/14Spring into AI presented by Dan Vega 5/14
Spring into AI presented by Dan Vega 5/14
 
What AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About ItWhat AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About It
 
Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023
 
Enhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at ScaleEnhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at Scale
 
Spring Update | July 2023
Spring Update | July 2023Spring Update | July 2023
Spring Update | July 2023
 
Platforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a ProductPlatforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a Product
 
Building Cloud Ready Apps
Building Cloud Ready AppsBuilding Cloud Ready Apps
Building Cloud Ready Apps
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And Beyond
 
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdfSpring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
 
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
 
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
 
tanzu_developer_connect.pptx
tanzu_developer_connect.pptxtanzu_developer_connect.pptx
tanzu_developer_connect.pptx
 
Tanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchTanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - French
 
Tanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishTanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - English
 
Virtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVirtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - English
 
Tanzu Developer Connect - French
Tanzu Developer Connect - FrenchTanzu Developer Connect - French
Tanzu Developer Connect - French
 
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
 
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootSpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
 
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerSpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software Engineer
 
SpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs PracticeSpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs Practice
 

Recently uploaded

JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)
Max Lee
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
Alluxio, Inc.
 
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfMastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
mbmh111980
 

Recently uploaded (20)

A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
 
Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024
 
The Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion ProductionThe Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion Production
 
Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024
 
How to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabberHow to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabber
 
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdfStrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
 
APVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purityAPVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purity
 
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
 
Workforce Efficiency with Employee Time Tracking Software.pdf
Workforce Efficiency with Employee Time Tracking Software.pdfWorkforce Efficiency with Employee Time Tracking Software.pdf
Workforce Efficiency with Employee Time Tracking Software.pdf
 
JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)
 
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
 
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdfImplementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
 
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
 
CompTIA Security+ (Study Notes) for cs.pdf
CompTIA Security+ (Study Notes) for cs.pdfCompTIA Security+ (Study Notes) for cs.pdf
CompTIA Security+ (Study Notes) for cs.pdf
 
AI Hackathon.pptx
AI                        Hackathon.pptxAI                        Hackathon.pptx
AI Hackathon.pptx
 
how-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdfhow-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdf
 
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfMastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
 
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfA Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
 
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product UpdatesGraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
 

Event-driven Architectures with Spring Cloud - SpringOne Tour Dallas