SlideShare a Scribd company logo
Redis and Kafka
Advanced Microservices Design Patterns Simplified
ALLEN TERLETO
SENIOR DIRECTOR, CUSTOMER SOLUTIONS AND FIELD ENGINEERING
https://www.linkedin.com/in/allenterleto/
AUGUST 2020
2
Explore demand and goals for Microservices
1
Microservices
Architecture
Define the characteristics of a Microservice
2
Quick introduction of Kafka and Redis
3
Advanced Microservices Architecture Patterns
4
+
What is holding back organizations from improving time-to-market?
4
Some Manager: We need more communication on and between our teams
Jeff Bezos: “No. Communication is terrible”
Software Evolution from Monolithic to Microservices
5 Source: https://www.martinfowler.com/microservices/
Characteristics of Microservices Architecture
6
Source: https://www.martinfowler.com/microservices/
1. Componentization via Services
2. Organized around Business Capabilities
3. Smart endpoints & dumb pipes
4. Decentralized Governance
5. Decentralized Data Management
6. Products not Projects
7. Infrastructure Automation
8. Design for failure
9. Evolutionary Design
API Gateway
Microservice
Message Broker
Microservice Microservice
There’s a lot to this.. so where do we begin?
7
There’s a lot to this.. so where do we begin?
8
Open Source In-Memory Database
supporting a variety of data structures and
data models optimized for
real-time and high-throughput use-cases
Open Source Stream Processing Platform
supporting distributed messaging
publish-subscribe data feeds for near-
real-time and high-throughput use-cases
9
Open Source Redis Modules
10 For more info check out: https://redislabs.com/community/redis-modules-hub/
Beautiful Chaos known as Microservices Architecture
12
Design Pattern - Bounded Context | Domain Driven Design
13
RedisAIRediSearch
risk:profile
input:tensors
output:tensors
RedisBloom
Authenticate
Digital Identity
user:profile
behavioral:profile
transaction:profile
geolocation
trusted:devices
Probabilistic Fraud
Detection Checkpoint
Transaction
Risk Scoring
user:transcations
Approve | Decline
Payment
Solution
• Practice Domain-Driven Design (DDD) principles
• Simplify complex domain models by dividing them into
separate Bounded Contexts; manageable by small teams
• Choose optimal data model based on each microservice’s data
access patterns and SLAs (RediSearch, RedisBloom, RedisAI, etc.)
Challenge
• Efficient communication between software
developers and domain experts
• Smaller autonomous teams are more productive
• Common terminology to establish requirements,
acceptance criteria, test cases, etc.
Bounded Context Bounded Context
Design Anti-Pattern – Two-Phase Commit Transactions
15
REDIS STREAMS
API Gateway
Microservice Microservice
write write
Challenge
• Each microservice can have its own database
however some business transactions will span
multiple Business Contexts
• In a Microservices Architecture, the Two-Phase
Commit protocol is an anti-pattern, since one or
more out of the hundreds or thousands of
microservices can, at any time, become unavailable
commit commitSolution
• Embrace eventual consistency and change mental model
from conforming to traditional ACID constraints
• Apply appropriate design patterns –
Message Broker, Saga, CQRS, Message Relay, Outbox, etc.
Design Pattern – Publish-Subscribe Message Broker
16
Kafka Message Broker
RediSearch RedisBloom
API Gateway
Authenticate
Digital Identity
Probabilistic Fraud
Detection Checkpoint
Challenge
• Two-Phase Commit protocol is an anti-pattern
• Transactions will span multiple business contexts
• Microservices can become unavailable at anytime
Solution
• Embrace event-driven architecture principles
• Inter-service communication (events) asynchronously
flow through a publish-subscribe Message Broker
• Zero, one, or more microservices can subscribe to
events that are relevant to their Business Context;
each at their own pace
• Microservices, recently recovered from unavailability, can
catch up to all the events they missed while unavailable
publish
subscribe subscribe
Design Pattern – Choreography-based Saga (State Machine)
17
Kafka Message Broker
RedisAIRedisBloom
Probabilistic Fraud
Detection Checkpoint
Transaction
Risk Scoring
Approve | Decline
Payment
YesNo
YesNo
Challenge
• Transactions will span multiple Business Contexts and the Two-Phase Commit protocol is an anti-pattern
• Microservices can include decision-logic that impacts which downstream services are in the transactional scope
Solution
• Saga is a sequence of local transactions
• Choreography-based Sagas are not
centrally coordinated
• Has roots in Finite-State Machine
• Each local transaction updates its
database and publishes an event to
trigger the next local transaction
• Sagas allow for unavailability along
their Chain-of-Responsibility, rollback
compensation for failures, and can replay the entire transaction
Design Pattern – Transactional Outbox | Message Relay
18
RediSearch
Kafka Message Broker
Authenticate
Digital Identity
RedisGears
user:profile
behavioral:profile
transaction:profile
geolocation
trusted:devices
Challenge
• Writing atomically to a database and a message broker can add
unnecessary code complexity
• Message Broker unavailability would force decisions about each
microservice’s trade-offs between availability and consistency
Solution
• Separate the concern of managing inter-service communication
by using an event-driven Message Relay
• RedisGears can be used to easily implement the Transactional
Outbox pattern by listening for events within Redis databases and
relaying event notifications (write-behind pattern) to a Message
Broker for downstream inter-service communication
• Redis-based microservices would avoid code complexity, concerns
with Message Broker unavailability, and performance overhead
Design Pattern – Capturing Telemetry
19
RedisGears
RedisTimeSeries
Analytics Dashboard
RediSearch
user:profile
behavioral:profile
transaction:profile
geolocation
trusted:devices
RedisAI
risk:profile
input:tensors
output:tensors
RedisBloom
user:transcations
RedisGears RedisGears
RedisTimeSeries
Challenge
• Telemetry is built on three pillars –
metrics, logs, and tracing
• Metrics are used for holistic observability
of a distributed-system in real time
• Metrics and tracing visualization often use
an underlying data model called “time-series”
Solution
• RedisTimeSeries has a native time-series data
model supporting high-volume inserts, low-
latency reads, aggregated queries, search-by
labels, downsampling, retention, indexing, etc.
• Metrics can be collected at various levels –
KPIs, application SLAs, infrastructure utilization, etc.
How can developers visualize time-series telemetry data?
20 Download for free: https://redislabs.com/redisinsight/
How can business analysts visualize time-series telemetry data?
21 For more info check out: https://github.com/mikhailredis/redis-pop-up-store and https://github.com/RedisTimeSeries/grafana-redis-datasource
Design Pattern – Event Sourcing
22
RedisAI
Analytics Dashboard
Redis Streams
risk:profile
input:tensors
output:tensors
RedisBloom
user:transcations
RedisGears RedisGears
Kafka Message Broker
Challenge
• Observability, tracing, and auditing of Choreography-based
Sagas is difficult across a decoupled chain of microservices
Solution
• Event Sourcing implies recording every microservice’s state
change as an immutable event; acting as a source of truth
• It is composed of a Message Broker and Event Store
• Based on the ordered sequence of events persisted in the
event store, a microservice can replay/rebuild its system
state by reprocessing recorded events at any time
• Redis Streams is an immutable in-memory append-only log
data structure perfectly suited and used as an Event Store
• Visualizing a stream of events can provide real-time
observability of the system’s state and instant recovery/replay
How can we visualize a stream of events?
23
Design Pattern – CQRS (Command Query Responsibility Segregation)
24
API Gateway
Approve | Decline
Payment
Payment History
RedisCDC
Redis Enterprise
readwrite
Challenge
• Each microservice should choose an optimal data model
for its unique data access patterns and SLAs
• There is no single data model optimally suited for all needs
Solution
• CQRS implies maintaining separate data structures for
writing (command) and reading (query) information
• Allows a microservice with extreme durability SLAs to use a
write-optimized database, while another microservice that
requires access to the same data uses a read-optimized database
• Managing eventual consistency between models is commonly
handled using the Transaction Log Tailing pattern
(a.k.a. Change-Data-Capture) or Message Relay pattern (covered earlier)
• RedisCDC provides a seamless drop-in-solution to keep heterogenous databases in-synch with Redis
Design Pattern – Shared Data (Microservice Level)
25
API Gateway
Approve | Decline
Payment
Payment History
RedisCDC
Redis Enterprise
readwrite
Clearing & Settlement
read
Challenge
• Multiple microservices need to
query the same data which
could be sourced from multiple
downstream microservices
Solution
• Implement the CQRS pattern
to build a view-only database
composed of replicated state-
change events from one or more
source databases
• Redis is optimally suited as a view-only
database, or microservices-cache,
because it inherently guarantees atomicity
for each operation, across multiple clients,
and provides sub-millisecond latency at scale
Design Pattern – Shared Data (Global Level)
26
Redis Enterprise
user:session
oauth:token
Kafka Message Broker
RediSearch RedisBloom
API Gateway
Authenticate
Digital Identity
Probabilistic Fraud
Detection Checkpoint
Challenge
• Session state, client authentication tokens,
and/or other global data may need to
be shared across hundreds of microservices
• A shared database, or ephemeral cache,
would couple all microservices together
• A global database could become
a single-point of failure user:transcations
user:profile
behavioral:profile
transaction:profile
geolocation
trusted:devices
Solution
• API Gateway deploys its own isolated and
highly-available database to store global data
• Redis is used across thousands of
microservices architectures in production
to manage session state and client authentication tokens
Retrospective
27
Challenges
• There’s more to microservices than breaking off chunks of code from a monolith
• Data Management quickly becomes a pain point if best practices are not considered
• Decentralization comes with trades-offs to complexity, technology sprawl, observability, etc.
Solutions
• Microservices design patterns help avoid complexity at scale
• Redis supports multiple models optimally suitable to simplify their implementation
• Kafka and Redis help turn Microservices Architecture’s beautiful chaos into controlled chaos
Check out my interview with Chris Richardson from
28
https://www.youtube.com/watch?v=q5Z8-cwGBXQ
Free Redis Microservices e-book for Developers
29 https://redislabs.com/docs/redis-microservices-for-dummies/
Check out these free resources to learn more about Redis
30
• http://redis.io/
• https://university.redislabs.com/
• https://docs.redislabs.com/latest/rs/
• https://www.youtube.com/c/RedisUniversity
Thank you!
redislabs.com

More Related Content

What's hot

OpenAPI 3.0, And What It Means for the Future of Swagger
OpenAPI 3.0, And What It Means for the Future of SwaggerOpenAPI 3.0, And What It Means for the Future of Swagger
OpenAPI 3.0, And What It Means for the Future of Swagger
SmartBear
 
IaC on AWS Cloud
IaC on AWS CloudIaC on AWS Cloud
IaC on AWS Cloud
Bhuvaneswari Subramani
 
Best Practices for Streaming IoT Data with MQTT and Apache Kafka
Best Practices for Streaming IoT Data with MQTT and Apache KafkaBest Practices for Streaming IoT Data with MQTT and Apache Kafka
Best Practices for Streaming IoT Data with MQTT and Apache Kafka
Kai Wähner
 
Event driven architecture
Event driven architectureEvent driven architecture
Event driven architecture
Shadrach Jabonir
 
Spark Operator—Deploy, Manage and Monitor Spark clusters on Kubernetes
 Spark Operator—Deploy, Manage and Monitor Spark clusters on Kubernetes Spark Operator—Deploy, Manage and Monitor Spark clusters on Kubernetes
Spark Operator—Deploy, Manage and Monitor Spark clusters on Kubernetes
Databricks
 
How Uber scaled its Real Time Infrastructure to Trillion events per day
How Uber scaled its Real Time Infrastructure to Trillion events per dayHow Uber scaled its Real Time Infrastructure to Trillion events per day
How Uber scaled its Real Time Infrastructure to Trillion events per day
DataWorks Summit
 
Amazon Aurora
Amazon AuroraAmazon Aurora
Amazon Aurora
Amazon Web Services
 
Quartz to Implement Scheduling Service
Quartz to Implement Scheduling ServiceQuartz to Implement Scheduling Service
Quartz to Implement Scheduling Service
Akila Senevirathne
 
OpenShift Overview
OpenShift OverviewOpenShift Overview
OpenShift Overview
roundman
 
Logging with Elasticsearch, Logstash & Kibana
Logging with Elasticsearch, Logstash & KibanaLogging with Elasticsearch, Logstash & Kibana
Logging with Elasticsearch, Logstash & KibanaAmazee Labs
 
Getting started with containers on Azure
Getting started with containers on AzureGetting started with containers on Azure
Getting started with containers on Azure
Microsoft Tech Community
 
Monitor Apache Spark 3 on Kubernetes using Metrics and Plugins
Monitor Apache Spark 3 on Kubernetes using Metrics and PluginsMonitor Apache Spark 3 on Kubernetes using Metrics and Plugins
Monitor Apache Spark 3 on Kubernetes using Metrics and Plugins
Databricks
 
AWS Webcast - Migrating to RDS Oracle
AWS Webcast - Migrating to RDS OracleAWS Webcast - Migrating to RDS Oracle
AWS Webcast - Migrating to RDS Oracle
Amazon Web Services
 
Serverless Architecture - A Gentle Overview
Serverless Architecture - A Gentle OverviewServerless Architecture - A Gentle Overview
Serverless Architecture - A Gentle Overview
CodeOps Technologies LLP
 
Elk - An introduction
Elk - An introductionElk - An introduction
Elk - An introduction
Hossein Shemshadi
 
Squirreling Away $640 Billion: How Stripe Leverages Flink for Change Data Cap...
Squirreling Away $640 Billion: How Stripe Leverages Flink for Change Data Cap...Squirreling Away $640 Billion: How Stripe Leverages Flink for Change Data Cap...
Squirreling Away $640 Billion: How Stripe Leverages Flink for Change Data Cap...
Flink Forward
 
Big Data Redis Mongodb Dynamodb Sharding
Big Data Redis Mongodb Dynamodb ShardingBig Data Redis Mongodb Dynamodb Sharding
Big Data Redis Mongodb Dynamodb Sharding
Araf Karsh Hamid
 
Azure API Management
Azure API ManagementAzure API Management
Azure API Management
Daniel Toomey
 
Building A Modern Data Analytics Architecture on AWS
Building A Modern Data Analytics Architecture on AWSBuilding A Modern Data Analytics Architecture on AWS
Building A Modern Data Analytics Architecture on AWS
Amazon Web Services
 
Multi-cloud Kubernetes BCDR with Velero
Multi-cloud Kubernetes BCDR with VeleroMulti-cloud Kubernetes BCDR with Velero
Multi-cloud Kubernetes BCDR with Velero
Kublr
 

What's hot (20)

OpenAPI 3.0, And What It Means for the Future of Swagger
OpenAPI 3.0, And What It Means for the Future of SwaggerOpenAPI 3.0, And What It Means for the Future of Swagger
OpenAPI 3.0, And What It Means for the Future of Swagger
 
IaC on AWS Cloud
IaC on AWS CloudIaC on AWS Cloud
IaC on AWS Cloud
 
Best Practices for Streaming IoT Data with MQTT and Apache Kafka
Best Practices for Streaming IoT Data with MQTT and Apache KafkaBest Practices for Streaming IoT Data with MQTT and Apache Kafka
Best Practices for Streaming IoT Data with MQTT and Apache Kafka
 
Event driven architecture
Event driven architectureEvent driven architecture
Event driven architecture
 
Spark Operator—Deploy, Manage and Monitor Spark clusters on Kubernetes
 Spark Operator—Deploy, Manage and Monitor Spark clusters on Kubernetes Spark Operator—Deploy, Manage and Monitor Spark clusters on Kubernetes
Spark Operator—Deploy, Manage and Monitor Spark clusters on Kubernetes
 
How Uber scaled its Real Time Infrastructure to Trillion events per day
How Uber scaled its Real Time Infrastructure to Trillion events per dayHow Uber scaled its Real Time Infrastructure to Trillion events per day
How Uber scaled its Real Time Infrastructure to Trillion events per day
 
Amazon Aurora
Amazon AuroraAmazon Aurora
Amazon Aurora
 
Quartz to Implement Scheduling Service
Quartz to Implement Scheduling ServiceQuartz to Implement Scheduling Service
Quartz to Implement Scheduling Service
 
OpenShift Overview
OpenShift OverviewOpenShift Overview
OpenShift Overview
 
Logging with Elasticsearch, Logstash & Kibana
Logging with Elasticsearch, Logstash & KibanaLogging with Elasticsearch, Logstash & Kibana
Logging with Elasticsearch, Logstash & Kibana
 
Getting started with containers on Azure
Getting started with containers on AzureGetting started with containers on Azure
Getting started with containers on Azure
 
Monitor Apache Spark 3 on Kubernetes using Metrics and Plugins
Monitor Apache Spark 3 on Kubernetes using Metrics and PluginsMonitor Apache Spark 3 on Kubernetes using Metrics and Plugins
Monitor Apache Spark 3 on Kubernetes using Metrics and Plugins
 
AWS Webcast - Migrating to RDS Oracle
AWS Webcast - Migrating to RDS OracleAWS Webcast - Migrating to RDS Oracle
AWS Webcast - Migrating to RDS Oracle
 
Serverless Architecture - A Gentle Overview
Serverless Architecture - A Gentle OverviewServerless Architecture - A Gentle Overview
Serverless Architecture - A Gentle Overview
 
Elk - An introduction
Elk - An introductionElk - An introduction
Elk - An introduction
 
Squirreling Away $640 Billion: How Stripe Leverages Flink for Change Data Cap...
Squirreling Away $640 Billion: How Stripe Leverages Flink for Change Data Cap...Squirreling Away $640 Billion: How Stripe Leverages Flink for Change Data Cap...
Squirreling Away $640 Billion: How Stripe Leverages Flink for Change Data Cap...
 
Big Data Redis Mongodb Dynamodb Sharding
Big Data Redis Mongodb Dynamodb ShardingBig Data Redis Mongodb Dynamodb Sharding
Big Data Redis Mongodb Dynamodb Sharding
 
Azure API Management
Azure API ManagementAzure API Management
Azure API Management
 
Building A Modern Data Analytics Architecture on AWS
Building A Modern Data Analytics Architecture on AWSBuilding A Modern Data Analytics Architecture on AWS
Building A Modern Data Analytics Architecture on AWS
 
Multi-cloud Kubernetes BCDR with Velero
Multi-cloud Kubernetes BCDR with VeleroMulti-cloud Kubernetes BCDR with Velero
Multi-cloud Kubernetes BCDR with Velero
 

Similar to Redis and Kafka - Simplifying Advanced Design Patterns within Microservices Architectures (Allen Terleto, RedisLabs) Kafka Summit 2020

Best Practices Building Cloud Scale Apps with Microservices
Best Practices Building Cloud Scale Apps with MicroservicesBest Practices Building Cloud Scale Apps with Microservices
Best Practices Building Cloud Scale Apps with Microservices
Jim (张建军) Zhang
 
[WSO2Con EU 2017] Microservices for Enterprises
[WSO2Con EU 2017] Microservices for Enterprises[WSO2Con EU 2017] Microservices for Enterprises
[WSO2Con EU 2017] Microservices for Enterprises
WSO2
 
Microservices Patterns with GoldenGate
Microservices Patterns with GoldenGateMicroservices Patterns with GoldenGate
Microservices Patterns with GoldenGate
Jeffrey T. Pollock
 
Microservices for Enterprises
Microservices for Enterprises Microservices for Enterprises
Microservices for Enterprises
Kasun Indrasiri
 
Modern Software Architecture - Cloud Scale Computing
Modern Software Architecture - Cloud Scale ComputingModern Software Architecture - Cloud Scale Computing
Modern Software Architecture - Cloud Scale Computing
Giragadurai Vallirajan
 
Microservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsMicroservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration Patterns
Araf Karsh Hamid
 
Stateful on Stateless - The Future of Applications in the Cloud
Stateful on Stateless - The Future of Applications in the CloudStateful on Stateless - The Future of Applications in the Cloud
Stateful on Stateless - The Future of Applications in the Cloud
Markus Eisele
 
Cloud Data Strategy event London
Cloud Data Strategy event LondonCloud Data Strategy event London
Cloud Data Strategy event London
MongoDB
 
Microservices: Where do they fit within a rapidly evolving integration archit...
Microservices: Where do they fit within a rapidly evolving integration archit...Microservices: Where do they fit within a rapidly evolving integration archit...
Microservices: Where do they fit within a rapidly evolving integration archit...
Kim Clark
 
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
AFAS Software
 
Iot cloud service v2.0
Iot cloud service v2.0Iot cloud service v2.0
Iot cloud service v2.0
Vinod Wilson
 
Closer Look at Cloud Centric Architectures
Closer Look at Cloud Centric ArchitecturesCloser Look at Cloud Centric Architectures
Closer Look at Cloud Centric Architectures
Todd Kaplinger
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
Anil Allewar
 
Enterprise Integration in Cloud Native Microservices Architectures
Enterprise Integration in Cloud Native Microservices ArchitecturesEnterprise Integration in Cloud Native Microservices Architectures
Enterprise Integration in Cloud Native Microservices Architectures
Crishantha Nanayakkara
 
Microservices Design Principles.pdf
Microservices Design Principles.pdfMicroservices Design Principles.pdf
Microservices Design Principles.pdf
Simform
 
An introduction to Microservices
An introduction to MicroservicesAn introduction to Microservices
An introduction to Microservices
Cisco DevNet
 
Grid and Cloud Computing Lecture-2a.pptx
Grid and Cloud Computing Lecture-2a.pptxGrid and Cloud Computing Lecture-2a.pptx
Grid and Cloud Computing Lecture-2a.pptx
DrAdeelAkram2
 
A Guide on What Are Microservices: Pros, Cons, Use Cases, and More
A Guide on What Are Microservices: Pros, Cons, Use Cases, and MoreA Guide on What Are Microservices: Pros, Cons, Use Cases, and More
A Guide on What Are Microservices: Pros, Cons, Use Cases, and More
Simform
 
Final_CloudEventFrankfurt2017 (1).pdf
Final_CloudEventFrankfurt2017 (1).pdfFinal_CloudEventFrankfurt2017 (1).pdf
Final_CloudEventFrankfurt2017 (1).pdfMongoDB
 
Transform Enterprise IT Infrastructure with AWS DevOps
Transform Enterprise IT Infrastructure with AWS DevOpsTransform Enterprise IT Infrastructure with AWS DevOps
Transform Enterprise IT Infrastructure with AWS DevOps
Amazon Web Services
 

Similar to Redis and Kafka - Simplifying Advanced Design Patterns within Microservices Architectures (Allen Terleto, RedisLabs) Kafka Summit 2020 (20)

Best Practices Building Cloud Scale Apps with Microservices
Best Practices Building Cloud Scale Apps with MicroservicesBest Practices Building Cloud Scale Apps with Microservices
Best Practices Building Cloud Scale Apps with Microservices
 
[WSO2Con EU 2017] Microservices for Enterprises
[WSO2Con EU 2017] Microservices for Enterprises[WSO2Con EU 2017] Microservices for Enterprises
[WSO2Con EU 2017] Microservices for Enterprises
 
Microservices Patterns with GoldenGate
Microservices Patterns with GoldenGateMicroservices Patterns with GoldenGate
Microservices Patterns with GoldenGate
 
Microservices for Enterprises
Microservices for Enterprises Microservices for Enterprises
Microservices for Enterprises
 
Modern Software Architecture - Cloud Scale Computing
Modern Software Architecture - Cloud Scale ComputingModern Software Architecture - Cloud Scale Computing
Modern Software Architecture - Cloud Scale Computing
 
Microservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsMicroservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration Patterns
 
Stateful on Stateless - The Future of Applications in the Cloud
Stateful on Stateless - The Future of Applications in the CloudStateful on Stateless - The Future of Applications in the Cloud
Stateful on Stateless - The Future of Applications in the Cloud
 
Cloud Data Strategy event London
Cloud Data Strategy event LondonCloud Data Strategy event London
Cloud Data Strategy event London
 
Microservices: Where do they fit within a rapidly evolving integration archit...
Microservices: Where do they fit within a rapidly evolving integration archit...Microservices: Where do they fit within a rapidly evolving integration archit...
Microservices: Where do they fit within a rapidly evolving integration archit...
 
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
 
Iot cloud service v2.0
Iot cloud service v2.0Iot cloud service v2.0
Iot cloud service v2.0
 
Closer Look at Cloud Centric Architectures
Closer Look at Cloud Centric ArchitecturesCloser Look at Cloud Centric Architectures
Closer Look at Cloud Centric Architectures
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
 
Enterprise Integration in Cloud Native Microservices Architectures
Enterprise Integration in Cloud Native Microservices ArchitecturesEnterprise Integration in Cloud Native Microservices Architectures
Enterprise Integration in Cloud Native Microservices Architectures
 
Microservices Design Principles.pdf
Microservices Design Principles.pdfMicroservices Design Principles.pdf
Microservices Design Principles.pdf
 
An introduction to Microservices
An introduction to MicroservicesAn introduction to Microservices
An introduction to Microservices
 
Grid and Cloud Computing Lecture-2a.pptx
Grid and Cloud Computing Lecture-2a.pptxGrid and Cloud Computing Lecture-2a.pptx
Grid and Cloud Computing Lecture-2a.pptx
 
A Guide on What Are Microservices: Pros, Cons, Use Cases, and More
A Guide on What Are Microservices: Pros, Cons, Use Cases, and MoreA Guide on What Are Microservices: Pros, Cons, Use Cases, and More
A Guide on What Are Microservices: Pros, Cons, Use Cases, and More
 
Final_CloudEventFrankfurt2017 (1).pdf
Final_CloudEventFrankfurt2017 (1).pdfFinal_CloudEventFrankfurt2017 (1).pdf
Final_CloudEventFrankfurt2017 (1).pdf
 
Transform Enterprise IT Infrastructure with AWS DevOps
Transform Enterprise IT Infrastructure with AWS DevOpsTransform Enterprise IT Infrastructure with AWS DevOps
Transform Enterprise IT Infrastructure with AWS DevOps
 

More from HostedbyConfluent

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
HostedbyConfluent
 
Renaming a Kafka Topic | Kafka Summit London
Renaming a Kafka Topic | Kafka Summit LondonRenaming a Kafka Topic | Kafka Summit London
Renaming a Kafka Topic | Kafka Summit London
HostedbyConfluent
 
Evolution of NRT Data Ingestion Pipeline at Trendyol
Evolution of NRT Data Ingestion Pipeline at TrendyolEvolution of NRT Data Ingestion Pipeline at Trendyol
Evolution of NRT Data Ingestion Pipeline at Trendyol
HostedbyConfluent
 
Ensuring Kafka Service Resilience: A Dive into Health-Checking Techniques
Ensuring Kafka Service Resilience: A Dive into Health-Checking TechniquesEnsuring Kafka Service Resilience: A Dive into Health-Checking Techniques
Ensuring Kafka Service Resilience: A Dive into Health-Checking Techniques
HostedbyConfluent
 
Exactly-once Stream Processing with Arroyo and Kafka
Exactly-once Stream Processing with Arroyo and KafkaExactly-once Stream Processing with Arroyo and Kafka
Exactly-once Stream Processing with Arroyo and Kafka
HostedbyConfluent
 
Fish Plays Pokemon | Kafka Summit London
Fish Plays Pokemon | Kafka Summit LondonFish Plays Pokemon | Kafka Summit London
Fish Plays Pokemon | Kafka Summit London
HostedbyConfluent
 
Tiered Storage 101 | Kafla Summit London
Tiered Storage 101 | Kafla Summit LondonTiered Storage 101 | Kafla Summit London
Tiered Storage 101 | Kafla Summit London
HostedbyConfluent
 
Building a Self-Service Stream Processing Portal: How And Why
Building a Self-Service Stream Processing Portal: How And WhyBuilding a Self-Service Stream Processing Portal: How And Why
Building a Self-Service Stream Processing Portal: How And Why
HostedbyConfluent
 
From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...
From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...
From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...
HostedbyConfluent
 
Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...
Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...
Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...
HostedbyConfluent
 
Navigating Private Network Connectivity Options for Kafka Clusters
Navigating Private Network Connectivity Options for Kafka ClustersNavigating Private Network Connectivity Options for Kafka Clusters
Navigating Private Network Connectivity Options for Kafka Clusters
HostedbyConfluent
 
Apache Flink: Building a Company-wide Self-service Streaming Data Platform
Apache Flink: Building a Company-wide Self-service Streaming Data PlatformApache Flink: Building a Company-wide Self-service Streaming Data Platform
Apache Flink: Building a Company-wide Self-service Streaming Data Platform
HostedbyConfluent
 
Explaining How Real-Time GenAI Works in a Noisy Pub
Explaining How Real-Time GenAI Works in a Noisy PubExplaining How Real-Time GenAI Works in a Noisy Pub
Explaining How Real-Time GenAI Works in a Noisy Pub
HostedbyConfluent
 
TL;DR Kafka Metrics | Kafka Summit London
TL;DR Kafka Metrics | Kafka Summit LondonTL;DR Kafka Metrics | Kafka Summit London
TL;DR Kafka Metrics | Kafka Summit London
HostedbyConfluent
 
A Window Into Your Kafka Streams Tasks | KSL
A Window Into Your Kafka Streams Tasks | KSLA Window Into Your Kafka Streams Tasks | KSL
A Window Into Your Kafka Streams Tasks | KSL
HostedbyConfluent
 
Mastering Kafka Producer Configs: A Guide to Optimizing Performance
Mastering Kafka Producer Configs: A Guide to Optimizing PerformanceMastering Kafka Producer Configs: A Guide to Optimizing Performance
Mastering Kafka Producer Configs: A Guide to Optimizing Performance
HostedbyConfluent
 
Data Contracts Management: Schema Registry and Beyond
Data Contracts Management: Schema Registry and BeyondData Contracts Management: Schema Registry and Beyond
Data Contracts Management: Schema Registry and Beyond
HostedbyConfluent
 
Code-First Approach: Crafting Efficient Flink Apps
Code-First Approach: Crafting Efficient Flink AppsCode-First Approach: Crafting Efficient Flink Apps
Code-First Approach: Crafting Efficient Flink Apps
HostedbyConfluent
 
Debezium vs. the World: An Overview of the CDC Ecosystem
Debezium vs. the World: An Overview of the CDC EcosystemDebezium vs. the World: An Overview of the CDC Ecosystem
Debezium vs. the World: An Overview of the CDC Ecosystem
HostedbyConfluent
 
Beyond Tiered Storage: Serverless Kafka with No Local Disks
Beyond Tiered Storage: Serverless Kafka with No Local DisksBeyond Tiered Storage: Serverless Kafka with No Local Disks
Beyond Tiered Storage: Serverless Kafka with No Local Disks
HostedbyConfluent
 

More from HostedbyConfluent (20)

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Renaming a Kafka Topic | Kafka Summit London
Renaming a Kafka Topic | Kafka Summit LondonRenaming a Kafka Topic | Kafka Summit London
Renaming a Kafka Topic | Kafka Summit London
 
Evolution of NRT Data Ingestion Pipeline at Trendyol
Evolution of NRT Data Ingestion Pipeline at TrendyolEvolution of NRT Data Ingestion Pipeline at Trendyol
Evolution of NRT Data Ingestion Pipeline at Trendyol
 
Ensuring Kafka Service Resilience: A Dive into Health-Checking Techniques
Ensuring Kafka Service Resilience: A Dive into Health-Checking TechniquesEnsuring Kafka Service Resilience: A Dive into Health-Checking Techniques
Ensuring Kafka Service Resilience: A Dive into Health-Checking Techniques
 
Exactly-once Stream Processing with Arroyo and Kafka
Exactly-once Stream Processing with Arroyo and KafkaExactly-once Stream Processing with Arroyo and Kafka
Exactly-once Stream Processing with Arroyo and Kafka
 
Fish Plays Pokemon | Kafka Summit London
Fish Plays Pokemon | Kafka Summit LondonFish Plays Pokemon | Kafka Summit London
Fish Plays Pokemon | Kafka Summit London
 
Tiered Storage 101 | Kafla Summit London
Tiered Storage 101 | Kafla Summit LondonTiered Storage 101 | Kafla Summit London
Tiered Storage 101 | Kafla Summit London
 
Building a Self-Service Stream Processing Portal: How And Why
Building a Self-Service Stream Processing Portal: How And WhyBuilding a Self-Service Stream Processing Portal: How And Why
Building a Self-Service Stream Processing Portal: How And Why
 
From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...
From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...
From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...
 
Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...
Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...
Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...
 
Navigating Private Network Connectivity Options for Kafka Clusters
Navigating Private Network Connectivity Options for Kafka ClustersNavigating Private Network Connectivity Options for Kafka Clusters
Navigating Private Network Connectivity Options for Kafka Clusters
 
Apache Flink: Building a Company-wide Self-service Streaming Data Platform
Apache Flink: Building a Company-wide Self-service Streaming Data PlatformApache Flink: Building a Company-wide Self-service Streaming Data Platform
Apache Flink: Building a Company-wide Self-service Streaming Data Platform
 
Explaining How Real-Time GenAI Works in a Noisy Pub
Explaining How Real-Time GenAI Works in a Noisy PubExplaining How Real-Time GenAI Works in a Noisy Pub
Explaining How Real-Time GenAI Works in a Noisy Pub
 
TL;DR Kafka Metrics | Kafka Summit London
TL;DR Kafka Metrics | Kafka Summit LondonTL;DR Kafka Metrics | Kafka Summit London
TL;DR Kafka Metrics | Kafka Summit London
 
A Window Into Your Kafka Streams Tasks | KSL
A Window Into Your Kafka Streams Tasks | KSLA Window Into Your Kafka Streams Tasks | KSL
A Window Into Your Kafka Streams Tasks | KSL
 
Mastering Kafka Producer Configs: A Guide to Optimizing Performance
Mastering Kafka Producer Configs: A Guide to Optimizing PerformanceMastering Kafka Producer Configs: A Guide to Optimizing Performance
Mastering Kafka Producer Configs: A Guide to Optimizing Performance
 
Data Contracts Management: Schema Registry and Beyond
Data Contracts Management: Schema Registry and BeyondData Contracts Management: Schema Registry and Beyond
Data Contracts Management: Schema Registry and Beyond
 
Code-First Approach: Crafting Efficient Flink Apps
Code-First Approach: Crafting Efficient Flink AppsCode-First Approach: Crafting Efficient Flink Apps
Code-First Approach: Crafting Efficient Flink Apps
 
Debezium vs. the World: An Overview of the CDC Ecosystem
Debezium vs. the World: An Overview of the CDC EcosystemDebezium vs. the World: An Overview of the CDC Ecosystem
Debezium vs. the World: An Overview of the CDC Ecosystem
 
Beyond Tiered Storage: Serverless Kafka with No Local Disks
Beyond Tiered Storage: Serverless Kafka with No Local DisksBeyond Tiered Storage: Serverless Kafka with No Local Disks
Beyond Tiered Storage: Serverless Kafka with No Local Disks
 

Recently uploaded

Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 

Recently uploaded (20)

Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 

Redis and Kafka - Simplifying Advanced Design Patterns within Microservices Architectures (Allen Terleto, RedisLabs) Kafka Summit 2020

  • 1. Redis and Kafka Advanced Microservices Design Patterns Simplified ALLEN TERLETO SENIOR DIRECTOR, CUSTOMER SOLUTIONS AND FIELD ENGINEERING https://www.linkedin.com/in/allenterleto/ AUGUST 2020
  • 2. 2 Explore demand and goals for Microservices 1 Microservices Architecture Define the characteristics of a Microservice 2 Quick introduction of Kafka and Redis 3 Advanced Microservices Architecture Patterns 4 +
  • 3.
  • 4. What is holding back organizations from improving time-to-market? 4 Some Manager: We need more communication on and between our teams Jeff Bezos: “No. Communication is terrible”
  • 5. Software Evolution from Monolithic to Microservices 5 Source: https://www.martinfowler.com/microservices/
  • 6. Characteristics of Microservices Architecture 6 Source: https://www.martinfowler.com/microservices/ 1. Componentization via Services 2. Organized around Business Capabilities 3. Smart endpoints & dumb pipes 4. Decentralized Governance 5. Decentralized Data Management 6. Products not Projects 7. Infrastructure Automation 8. Design for failure 9. Evolutionary Design API Gateway Microservice Message Broker Microservice Microservice
  • 7. There’s a lot to this.. so where do we begin? 7
  • 8. There’s a lot to this.. so where do we begin? 8
  • 9. Open Source In-Memory Database supporting a variety of data structures and data models optimized for real-time and high-throughput use-cases Open Source Stream Processing Platform supporting distributed messaging publish-subscribe data feeds for near- real-time and high-throughput use-cases 9
  • 10. Open Source Redis Modules 10 For more info check out: https://redislabs.com/community/redis-modules-hub/
  • 11. Beautiful Chaos known as Microservices Architecture 12
  • 12. Design Pattern - Bounded Context | Domain Driven Design 13 RedisAIRediSearch risk:profile input:tensors output:tensors RedisBloom Authenticate Digital Identity user:profile behavioral:profile transaction:profile geolocation trusted:devices Probabilistic Fraud Detection Checkpoint Transaction Risk Scoring user:transcations Approve | Decline Payment Solution • Practice Domain-Driven Design (DDD) principles • Simplify complex domain models by dividing them into separate Bounded Contexts; manageable by small teams • Choose optimal data model based on each microservice’s data access patterns and SLAs (RediSearch, RedisBloom, RedisAI, etc.) Challenge • Efficient communication between software developers and domain experts • Smaller autonomous teams are more productive • Common terminology to establish requirements, acceptance criteria, test cases, etc. Bounded Context Bounded Context
  • 13. Design Anti-Pattern – Two-Phase Commit Transactions 15 REDIS STREAMS API Gateway Microservice Microservice write write Challenge • Each microservice can have its own database however some business transactions will span multiple Business Contexts • In a Microservices Architecture, the Two-Phase Commit protocol is an anti-pattern, since one or more out of the hundreds or thousands of microservices can, at any time, become unavailable commit commitSolution • Embrace eventual consistency and change mental model from conforming to traditional ACID constraints • Apply appropriate design patterns – Message Broker, Saga, CQRS, Message Relay, Outbox, etc.
  • 14. Design Pattern – Publish-Subscribe Message Broker 16 Kafka Message Broker RediSearch RedisBloom API Gateway Authenticate Digital Identity Probabilistic Fraud Detection Checkpoint Challenge • Two-Phase Commit protocol is an anti-pattern • Transactions will span multiple business contexts • Microservices can become unavailable at anytime Solution • Embrace event-driven architecture principles • Inter-service communication (events) asynchronously flow through a publish-subscribe Message Broker • Zero, one, or more microservices can subscribe to events that are relevant to their Business Context; each at their own pace • Microservices, recently recovered from unavailability, can catch up to all the events they missed while unavailable publish subscribe subscribe
  • 15. Design Pattern – Choreography-based Saga (State Machine) 17 Kafka Message Broker RedisAIRedisBloom Probabilistic Fraud Detection Checkpoint Transaction Risk Scoring Approve | Decline Payment YesNo YesNo Challenge • Transactions will span multiple Business Contexts and the Two-Phase Commit protocol is an anti-pattern • Microservices can include decision-logic that impacts which downstream services are in the transactional scope Solution • Saga is a sequence of local transactions • Choreography-based Sagas are not centrally coordinated • Has roots in Finite-State Machine • Each local transaction updates its database and publishes an event to trigger the next local transaction • Sagas allow for unavailability along their Chain-of-Responsibility, rollback compensation for failures, and can replay the entire transaction
  • 16. Design Pattern – Transactional Outbox | Message Relay 18 RediSearch Kafka Message Broker Authenticate Digital Identity RedisGears user:profile behavioral:profile transaction:profile geolocation trusted:devices Challenge • Writing atomically to a database and a message broker can add unnecessary code complexity • Message Broker unavailability would force decisions about each microservice’s trade-offs between availability and consistency Solution • Separate the concern of managing inter-service communication by using an event-driven Message Relay • RedisGears can be used to easily implement the Transactional Outbox pattern by listening for events within Redis databases and relaying event notifications (write-behind pattern) to a Message Broker for downstream inter-service communication • Redis-based microservices would avoid code complexity, concerns with Message Broker unavailability, and performance overhead
  • 17. Design Pattern – Capturing Telemetry 19 RedisGears RedisTimeSeries Analytics Dashboard RediSearch user:profile behavioral:profile transaction:profile geolocation trusted:devices RedisAI risk:profile input:tensors output:tensors RedisBloom user:transcations RedisGears RedisGears RedisTimeSeries Challenge • Telemetry is built on three pillars – metrics, logs, and tracing • Metrics are used for holistic observability of a distributed-system in real time • Metrics and tracing visualization often use an underlying data model called “time-series” Solution • RedisTimeSeries has a native time-series data model supporting high-volume inserts, low- latency reads, aggregated queries, search-by labels, downsampling, retention, indexing, etc. • Metrics can be collected at various levels – KPIs, application SLAs, infrastructure utilization, etc.
  • 18. How can developers visualize time-series telemetry data? 20 Download for free: https://redislabs.com/redisinsight/
  • 19. How can business analysts visualize time-series telemetry data? 21 For more info check out: https://github.com/mikhailredis/redis-pop-up-store and https://github.com/RedisTimeSeries/grafana-redis-datasource
  • 20. Design Pattern – Event Sourcing 22 RedisAI Analytics Dashboard Redis Streams risk:profile input:tensors output:tensors RedisBloom user:transcations RedisGears RedisGears Kafka Message Broker Challenge • Observability, tracing, and auditing of Choreography-based Sagas is difficult across a decoupled chain of microservices Solution • Event Sourcing implies recording every microservice’s state change as an immutable event; acting as a source of truth • It is composed of a Message Broker and Event Store • Based on the ordered sequence of events persisted in the event store, a microservice can replay/rebuild its system state by reprocessing recorded events at any time • Redis Streams is an immutable in-memory append-only log data structure perfectly suited and used as an Event Store • Visualizing a stream of events can provide real-time observability of the system’s state and instant recovery/replay
  • 21. How can we visualize a stream of events? 23
  • 22. Design Pattern – CQRS (Command Query Responsibility Segregation) 24 API Gateway Approve | Decline Payment Payment History RedisCDC Redis Enterprise readwrite Challenge • Each microservice should choose an optimal data model for its unique data access patterns and SLAs • There is no single data model optimally suited for all needs Solution • CQRS implies maintaining separate data structures for writing (command) and reading (query) information • Allows a microservice with extreme durability SLAs to use a write-optimized database, while another microservice that requires access to the same data uses a read-optimized database • Managing eventual consistency between models is commonly handled using the Transaction Log Tailing pattern (a.k.a. Change-Data-Capture) or Message Relay pattern (covered earlier) • RedisCDC provides a seamless drop-in-solution to keep heterogenous databases in-synch with Redis
  • 23. Design Pattern – Shared Data (Microservice Level) 25 API Gateway Approve | Decline Payment Payment History RedisCDC Redis Enterprise readwrite Clearing & Settlement read Challenge • Multiple microservices need to query the same data which could be sourced from multiple downstream microservices Solution • Implement the CQRS pattern to build a view-only database composed of replicated state- change events from one or more source databases • Redis is optimally suited as a view-only database, or microservices-cache, because it inherently guarantees atomicity for each operation, across multiple clients, and provides sub-millisecond latency at scale
  • 24. Design Pattern – Shared Data (Global Level) 26 Redis Enterprise user:session oauth:token Kafka Message Broker RediSearch RedisBloom API Gateway Authenticate Digital Identity Probabilistic Fraud Detection Checkpoint Challenge • Session state, client authentication tokens, and/or other global data may need to be shared across hundreds of microservices • A shared database, or ephemeral cache, would couple all microservices together • A global database could become a single-point of failure user:transcations user:profile behavioral:profile transaction:profile geolocation trusted:devices Solution • API Gateway deploys its own isolated and highly-available database to store global data • Redis is used across thousands of microservices architectures in production to manage session state and client authentication tokens
  • 25. Retrospective 27 Challenges • There’s more to microservices than breaking off chunks of code from a monolith • Data Management quickly becomes a pain point if best practices are not considered • Decentralization comes with trades-offs to complexity, technology sprawl, observability, etc. Solutions • Microservices design patterns help avoid complexity at scale • Redis supports multiple models optimally suitable to simplify their implementation • Kafka and Redis help turn Microservices Architecture’s beautiful chaos into controlled chaos
  • 26. Check out my interview with Chris Richardson from 28 https://www.youtube.com/watch?v=q5Z8-cwGBXQ
  • 27. Free Redis Microservices e-book for Developers 29 https://redislabs.com/docs/redis-microservices-for-dummies/
  • 28. Check out these free resources to learn more about Redis 30 • http://redis.io/ • https://university.redislabs.com/ • https://docs.redislabs.com/latest/rs/ • https://www.youtube.com/c/RedisUniversity