SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Presenters: Madhavan Narayanan Sajith Sebastian Amit Kaushal Gokul Sarangapani
Pulsar Journey@Intuit
Building our next-gen messaging platform
Topic : persistent://pulsar/intuit/our-migration-story
Intuit Confidential and Proprietary 2
Messaging at Intuit
Background of Intuit Messaging platform and current technology used
Need for Migration
Limitations of the current platform and our migration goals
Messaging with Pulsar
Feasibility study and the target architecture for next-gen platform
Challenges and Solutions
Problems faced and the solutions
Journey Ahead
The future roadmap items
Agenda
Messaging at Intuit
Current State
Intuit Confidential and Proprietary 4
Intuit Messaging Platform - Current State
Tax Filing Workflow
Dispatchers
Order Management
Payments
Processing
Billing
Schedulers Processors Observers
…
…
Products
Use Cases
Services
The Platform
Point-to-Point
Queues
Multi-Subscription
Topics
Persistent
Storage
Multi-Region
Support
Active-Active Use
cases
Highly resilient
ActiveMQ Network-of-
Brokers
Intuit
Messaging
Platform
Intuit Confidential and Proprietary 5
Messaging with ActiveMQ
Network-of-Brokers
Broker2
Broker1
WEST EAST
Producers
Broker3 Broker4 Broker5 Broker6
➢ ActiveMQ brokers distributed
across 2 regions
➢ NLB in each region to route
connections to brokers
➢ Route53 for latency based
routing to closest NLB
➢ All brokers know each other
and form a network. Not easily
scalable
➢ Brokers store messages in
local files
➢ Producers and Consumers use
JMS APIs and connect to the
Route53 endpoint
NLB NLB
Route53
Consumers
JMS API JMS API
Each broker has connection to every other broker
Intuit Confidential and Proprietary 6
Active-Active support with ActiveMQ
ActiveMQ Network-of-
Brokers
Broker2
Broker1
WEST EAST
West
Producer
Broker3 Broker4 Broker5 Broker6
East
Consumer
East
Producer
➢ Producers and Consumers
connect to broker(s) in the local
region
➢ Producers always see low latency
➢ Messages for a given topic can
be stored in multiple brokers
➢ Messages are internally
forwarded between brokers and
find their way to consumers.
There is no message replication
➢ Inefficient and waste of
bandwidth due to the high
volume of inter-broker traffic.
➢ Highly resilient to individual
broker failures.
Intuit Confidential and Proprietary 7
Handling Region failure with ActiveMQ
West brokers down
Broker2
Broker1
WEST EAST
West
Producer
Broker3 Broker4 Broker5 Broker6
East
Consumer
East
Producer ➢ Producers transparently
reconnect to a broker in
remote region
➢ Producers now see a high
publish latency
➢ However producers can
continue their operation
without any adverse impact
➢ Messages stored in the
affected brokers are not
available for consumers until
they come back ‘online’
➢ The network automatically
recovers once the brokers are
available
Need for Migration
Intuit Confidential and Proprietary 9
Technology
➢ ActiveMQ is an outdated technology, with architectural limitations
➢ To keep abreast with latest, modern, cloud-native technology
Scalability
➢ Scalability in ActiveMQ NoB is non-trivial and complex
➢ Significant increase in overheads as more brokers are added to the network
Throughput
➢ Maximum throughput of ActiveMQ NoB is limited, with little room to grow
➢ Need to be ready for future needs at Intuit. Significant growth in traffic projected
Cost
➢ High Price-Performance ratio of NoB. Significant loss of bandwidth in inter-broker traffic
➢ Need a solution that maximizes throughput with available resources
Operations
➢ Lack of central management in NoB. High cost of maintenance operations
➢ Lack of cluster level statistics and monitoring
Why we were looking to migrate
Intuit Confidential and Proprietary 10
Retain
● Multi-Region support
● Active-Active support
● Resiliency to system
failures
While we were evaluating multiple options against ActiveMQ capabilities, our focus was to
Migration Focus
Improve
● Ease of scalability
● Ease of operations
● Throughput and
performance
Avoid
● A single layer handling both
storage and customer traffic
● Inefficient inter-broker traffic
within the platform
● Duplicate message storage
for each subscriber
Messaging with Pulsar
Intuit Confidential and Proprietary 12
Feasibility Study
➢ Setup a Pulsar cluster that was equivalent in cost to an ActiveMQ NoB
➢ Extended Pulsar Broker to encrypt/decrypt messages for parity with existing system
➢ Verified all basic messaging functions for queueing use case (produce/consume operations
for persistent topics, single and multiple subscriptions)
➢ Verified scalability of broker and proxy tiers
➢ Verified dynamic addition of bookies, racks placement strategies and namespace isolation
➢ Ran extensive performance tests
What
we did
Results ➢ For nearly the same cost, a pulsar cluster was able to support 3.5x times the throughput of
an equivalent ActiveMQ NoB
➢ Highly consistent and contained publish latencies even at high throughput traffic. Unlike in
the case of ActiveMQ brokers, producers were relatively unaffected by the presence of
consumer connections
Intuit Confidential and Proprietary 13
Next Gen Messaging Platform with Pulsar
➢ Global zookeeper
spanning multiple regions
➢ Proxies, Brokers and
Bookies connect to a local
zookeeper
➢ Scalable and extensible
Proxy tier for managing
traffic
➢ Scalable Broker tier for
serving messages
➢ A separate scalable
storage tier with rack
support
➢ JMS wrapper over pulsar
client library
JMS Producers
JMS API
Pulsar Client
JMS Consumers
JMS API
Pulsar Client
Pulsar SDK
Producers
Pulsar Client
Pulsar SDK
Consumers
Pulsar Client
Challenges & Solutions
Zookeeper Issues
Intuit Confidential and Proprietary 15
Challenge #1 - Zookeeper Quorum Issue
➢ Intuit operates primarily in 2 AWS regions in US, namely us-west-2 and us-east-2
➢ Messaging platform also spans these 2 regions only
➢ When a region failure occurs within the platform, the entire pulsar cluster collapses due to
zookeeper failure
➢ Zookeepers lose majority quorum when one region is down and take the cluster down
➢ Our clients suddenly start failing since the cluster is unavailable. This is a regression
Issue
Solution ➢ We added one more region ‘us-east-1’ to the cluster
➢ Only one zookeeper instance runs in ‘us-east-1’. No other components are used there
➢ us-east-1 is a rarely used region by Intuit services and doesn’t have the same support/SLA
from AWS as the other 2 regions
Intuit Confidential and Proprietary 16
Challenge #2 - Zookeeper issue again
➢ With zookeeper in 3 regions, we started seeing frequent issues even during normal mode of
operation. i.e when all the 3 regions were active
➢ Zookeepers would frequently seize and stall making the cluster unavailable
➢ Zookeeper in us-east-1 region was becoming the leader most of the time, but was unable to
moderate and keep the quorum working.
➢ This was due to high network latency in us-east-1. Also, the overall cluster performance
dropped significantly when an east zookeeper become the leader (most of traffic is in west)
➢ Unable to find any solution to precisely control who becomes the leader in a ZK cluster
Issue
Solution ➢ After a lot of troubleshooting and experiments, we found that the zookeeper instance with a
larger server id value had more probability of becoming the leader
➢ Now we just had to control the sequence of zookeeper server id values in configuration,
keeping the us-east-1 instance at the smallest value
➢ Never saw the issue again after this fix
Challenges & Solutions
Latency and Ledger Issues
Intuit Confidential and Proprietary 18
Challenge #3 - High publish latencies
➢ Pulsar design assigns a single owner broker for a topic. All traffic for the topic is handled by
this broker
➢ All message producers from both regions end up getting connected to this single broker
(via proxies in local region)
➢ This results in latency disparity between producers who are in the same region as the broker
and the ones who are in remote region
➢ The cross region latencies are as high as 50ms average. This was a serious regression when
compared to ActiveMQ Network-of-Brokers
Issue
Solution ➢ Since our customers use region-agnostic topic names and expect active-active support from
us, we had to implement region-level isolation of topics underneath
➢ Implemented a service discovery extension that is configured in proxy to handle custom
topic name lookups. Also used namespace isolation policies to pin topics to specific brokers
➢ Implemented a wrapper over pulsar client library that uses the extended lookup to
transparently map the region-agnostic topic name to a region-specific sub topic.
➢ Consumers read messages from all the sub topics
Intuit Confidential and Proprietary 19
Brokers
West Namespace Brokers
Bookie2
west-2a
Bookie1
west-2b
Bookie2
west-2b
Bookie1
west-2c
Bookie2
west-2c
Rack1 Rack2 Rack3
Bookie Group - West Local
Bookie1
west-2a
Bookie2
east-2a
Bookie1
east-2b
Bookie2
east-2b
Bookie1
west-2c
Bookie2
east-2c
Rack1 Rack2 Rack3
Bookie Group - East Local
Bookie1
east-2a
Pulsar Proxy
Service
Discovery
WEST EAST
Zookeepers
Brokers
Pulsar Proxy
Service
Discovery
JMS Producers
JMS API
Pulsar Client
JMS Consumers
JMS API
Pulsar Client
Pulsar SDK
Producers
Pulsar Client
Pulsar SDK
Consumers
Pulsar Client
Challenge #3 - High publish latencies - Solution
East Namespace Brokers
Intuit Confidential and Proprietary 20
Challenge #4 - Ledger recovery failure
➢ Messages for a topic are stored in a sequence of ledgers in BookKeeper. The owner broker
for the topic manages the state of the ledgers.
➢ Ledgers are replicated to multiple bookies based on the write quorum value
➢ When a bookie crashes, open ledgers in it are closed by brokers which then create new
ledgers using other available bookies. When a broker crashes, other brokers assume
ownership of the abandoned topics and are able to re-open the ledgers
➢ However in case of multiple system failures resulting in a combination of broker and bookie
crashes, it leads to a situation where the ledgers cannot be recovered and topic producers
are stalled and new messages cannot be published. This results in business impact
Issue
Solution ➢ For recovery, a quick restart of the bookies is needed. Due to sync operation, a delayed
restart can overshoot the SLA and result in customer impact
➢ We are working on a solution to use our custom service discovery to detect this condition
and redirect producer to the sub-topic for the remote region.
Journey Ahead
Intuit Confidential and Proprietary 22
Journey Ahead
➢ We are in production now with limited availability to restricted set of customers
➢ As we move towards making the platform generally available to all customers, the following are some
items of focus
○ Enhancing and fortifying the resiliency of the system
○ Enabling Transaction Support
○ Auto scaling of brokers
○ Enabling Pulsar Schema Support using a custom schema registry
➢ We also have long term plans to
○ Move the platform to Intuit’s Kubernetes Platform
○ Support multi-cloud messaging
Intuit Confidential and Proprietary 23
Let us know your thoughts
Please write your feedback and comments to
● madhavan_narayanan@intuit.com
● gokul_s@intuit.com
● sajith_sebastian@intuit.com
● amit_kaushal@intuit.com
Thank You

Weitere ähnliche Inhalte

Was ist angesagt?

Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache KafkaShiao-An Yuan
 
Producer Performance Tuning for Apache Kafka
Producer Performance Tuning for Apache KafkaProducer Performance Tuning for Apache Kafka
Producer Performance Tuning for Apache KafkaJiangjie Qin
 
[2018] 오픈스택 5년 운영의 경험
[2018] 오픈스택 5년 운영의 경험[2018] 오픈스택 5년 운영의 경험
[2018] 오픈스택 5년 운영의 경험NHN FORWARD
 
Cassandra and Riak at BestBuy.com
Cassandra and Riak at BestBuy.comCassandra and Riak at BestBuy.com
Cassandra and Riak at BestBuy.comjoelcrabb
 
Apache Kafka - Messaging System Overview
Apache Kafka - Messaging System OverviewApache Kafka - Messaging System Overview
Apache Kafka - Messaging System OverviewDmitry Tolpeko
 
Apache Kafka – (Pattern and) Anti-Pattern
Apache Kafka – (Pattern and) Anti-PatternApache Kafka – (Pattern and) Anti-Pattern
Apache Kafka – (Pattern and) Anti-Patternconfluent
 
Automate Your Kafka Cluster with Kubernetes Custom Resources
Automate Your Kafka Cluster with Kubernetes Custom Resources Automate Your Kafka Cluster with Kubernetes Custom Resources
Automate Your Kafka Cluster with Kubernetes Custom Resources confluent
 
OpenStack Telco Architecture: OpenStack Summit Boston 2017
OpenStack Telco Architecture: OpenStack Summit Boston 2017OpenStack Telco Architecture: OpenStack Summit Boston 2017
OpenStack Telco Architecture: OpenStack Summit Boston 2017Christian "kiko" Reis
 
Fundamentals of Apache Kafka
Fundamentals of Apache KafkaFundamentals of Apache Kafka
Fundamentals of Apache KafkaChhavi Parasher
 
Kafka High Availability in multi data center setup with floating Observers wi...
Kafka High Availability in multi data center setup with floating Observers wi...Kafka High Availability in multi data center setup with floating Observers wi...
Kafka High Availability in multi data center setup with floating Observers wi...HostedbyConfluent
 
Streaming Millions of Contact Center Interactions in (Near) Real-Time with Pu...
Streaming Millions of Contact Center Interactions in (Near) Real-Time with Pu...Streaming Millions of Contact Center Interactions in (Near) Real-Time with Pu...
Streaming Millions of Contact Center Interactions in (Near) Real-Time with Pu...StreamNative
 
Apache Kafka Architecture & Fundamentals Explained
Apache Kafka Architecture & Fundamentals ExplainedApache Kafka Architecture & Fundamentals Explained
Apache Kafka Architecture & Fundamentals Explainedconfluent
 
Distributed Lock Manager
Distributed Lock ManagerDistributed Lock Manager
Distributed Lock ManagerHao Chen
 
Implementing Microservices with NATS
Implementing Microservices with NATSImplementing Microservices with NATS
Implementing Microservices with NATSNATS
 
Apache Pulsar Development 101 with Python
Apache Pulsar Development 101 with PythonApache Pulsar Development 101 with Python
Apache Pulsar Development 101 with PythonTimothy Spann
 
Apache Kafka as Message Queue for your microservices and other occasions
Apache Kafka as Message Queue for your microservices and other occasionsApache Kafka as Message Queue for your microservices and other occasions
Apache Kafka as Message Queue for your microservices and other occasionsMichael Reinsch
 

Was ist angesagt? (20)

Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache Kafka
 
Producer Performance Tuning for Apache Kafka
Producer Performance Tuning for Apache KafkaProducer Performance Tuning for Apache Kafka
Producer Performance Tuning for Apache Kafka
 
[2018] 오픈스택 5년 운영의 경험
[2018] 오픈스택 5년 운영의 경험[2018] 오픈스택 5년 운영의 경험
[2018] 오픈스택 5년 운영의 경험
 
Cassandra and Riak at BestBuy.com
Cassandra and Riak at BestBuy.comCassandra and Riak at BestBuy.com
Cassandra and Riak at BestBuy.com
 
Apache kafka
Apache kafkaApache kafka
Apache kafka
 
Apache Kafka - Messaging System Overview
Apache Kafka - Messaging System OverviewApache Kafka - Messaging System Overview
Apache Kafka - Messaging System Overview
 
Apache Kafka – (Pattern and) Anti-Pattern
Apache Kafka – (Pattern and) Anti-PatternApache Kafka – (Pattern and) Anti-Pattern
Apache Kafka – (Pattern and) Anti-Pattern
 
Automate Your Kafka Cluster with Kubernetes Custom Resources
Automate Your Kafka Cluster with Kubernetes Custom Resources Automate Your Kafka Cluster with Kubernetes Custom Resources
Automate Your Kafka Cluster with Kubernetes Custom Resources
 
OpenStack Telco Architecture: OpenStack Summit Boston 2017
OpenStack Telco Architecture: OpenStack Summit Boston 2017OpenStack Telco Architecture: OpenStack Summit Boston 2017
OpenStack Telco Architecture: OpenStack Summit Boston 2017
 
Fundamentals of Apache Kafka
Fundamentals of Apache KafkaFundamentals of Apache Kafka
Fundamentals of Apache Kafka
 
Kafka High Availability in multi data center setup with floating Observers wi...
Kafka High Availability in multi data center setup with floating Observers wi...Kafka High Availability in multi data center setup with floating Observers wi...
Kafka High Availability in multi data center setup with floating Observers wi...
 
Adapting to evolving user, security, and business needs with aruba clear pass
Adapting to evolving user, security, and business needs with aruba clear passAdapting to evolving user, security, and business needs with aruba clear pass
Adapting to evolving user, security, and business needs with aruba clear pass
 
Apache kafka
Apache kafkaApache kafka
Apache kafka
 
Streaming Millions of Contact Center Interactions in (Near) Real-Time with Pu...
Streaming Millions of Contact Center Interactions in (Near) Real-Time with Pu...Streaming Millions of Contact Center Interactions in (Near) Real-Time with Pu...
Streaming Millions of Contact Center Interactions in (Near) Real-Time with Pu...
 
Apache Kafka Architecture & Fundamentals Explained
Apache Kafka Architecture & Fundamentals ExplainedApache Kafka Architecture & Fundamentals Explained
Apache Kafka Architecture & Fundamentals Explained
 
Apache kafka
Apache kafkaApache kafka
Apache kafka
 
Distributed Lock Manager
Distributed Lock ManagerDistributed Lock Manager
Distributed Lock Manager
 
Implementing Microservices with NATS
Implementing Microservices with NATSImplementing Microservices with NATS
Implementing Microservices with NATS
 
Apache Pulsar Development 101 with Python
Apache Pulsar Development 101 with PythonApache Pulsar Development 101 with Python
Apache Pulsar Development 101 with Python
 
Apache Kafka as Message Queue for your microservices and other occasions
Apache Kafka as Message Queue for your microservices and other occasionsApache Kafka as Message Queue for your microservices and other occasions
Apache Kafka as Message Queue for your microservices and other occasions
 

Ähnlich wie Building the Next-Generation Messaging Platform on Pulsar at Intuit - Pulsar Summit NA 2021 Keynote

Netflix Data Pipeline With Kafka
Netflix Data Pipeline With KafkaNetflix Data Pipeline With Kafka
Netflix Data Pipeline With KafkaSteven Wu
 
Improving performance and efficiency with Network Virtualization Overlays
Improving performance and efficiency with Network Virtualization OverlaysImproving performance and efficiency with Network Virtualization Overlays
Improving performance and efficiency with Network Virtualization OverlaysAdam Johnson
 
Move fast and make things with microservices
Move fast and make things with microservicesMove fast and make things with microservices
Move fast and make things with microservicesMithun Arunan
 
IBM MQ High Availabillity and Disaster Recovery (2017 version)
IBM MQ High Availabillity and Disaster Recovery (2017 version)IBM MQ High Availabillity and Disaster Recovery (2017 version)
IBM MQ High Availabillity and Disaster Recovery (2017 version)MarkTaylorIBM
 
Capital One Delivers Risk Insights in Real Time with Stream Processing
Capital One Delivers Risk Insights in Real Time with Stream ProcessingCapital One Delivers Risk Insights in Real Time with Stream Processing
Capital One Delivers Risk Insights in Real Time with Stream Processingconfluent
 
PortoTechHub - Hail Hydrate! From Stream to Lake with Apache Pulsar and Friends
PortoTechHub  - Hail Hydrate! From Stream to Lake with Apache Pulsar and FriendsPortoTechHub  - Hail Hydrate! From Stream to Lake with Apache Pulsar and Friends
PortoTechHub - Hail Hydrate! From Stream to Lake with Apache Pulsar and FriendsTimothy Spann
 
Princeton Dec 2022 Meetup_ NiFi + Flink + Pulsar
Princeton Dec 2022 Meetup_ NiFi + Flink + PulsarPrinceton Dec 2022 Meetup_ NiFi + Flink + Pulsar
Princeton Dec 2022 Meetup_ NiFi + Flink + PulsarTimothy Spann
 
Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...
Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...
Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...confluent
 
Availability of Kafka - Beyond the Brokers | Andrew Borley and Emma Humber, IBM
Availability of Kafka - Beyond the Brokers | Andrew Borley and Emma Humber, IBMAvailability of Kafka - Beyond the Brokers | Andrew Borley and Emma Humber, IBM
Availability of Kafka - Beyond the Brokers | Andrew Borley and Emma Humber, IBMHostedbyConfluent
 
KubeCon + CloudNative Con NA 2021 | A New Generation of NATS
KubeCon + CloudNative Con NA 2021 | A New Generation of NATSKubeCon + CloudNative Con NA 2021 | A New Generation of NATS
KubeCon + CloudNative Con NA 2021 | A New Generation of NATSNATS
 
Building and Scaling Your First Containerized Microservices
Building and Scaling Your First Containerized MicroservicesBuilding and Scaling Your First Containerized Microservices
Building and Scaling Your First Containerized MicroservicesAmazon Web Services
 
Enterprise-Grade Networking in OpenStack
Enterprise-Grade Networking in OpenStackEnterprise-Grade Networking in OpenStack
Enterprise-Grade Networking in OpenStackMarten Hauville
 
Using Kubernetes to make cellular data plans cheaper for 50M users
Using Kubernetes to make cellular data plans cheaper for 50M usersUsing Kubernetes to make cellular data plans cheaper for 50M users
Using Kubernetes to make cellular data plans cheaper for 50M usersMirantis
 
Service Mesh Talk for CTO Forum
Service Mesh Talk for CTO ForumService Mesh Talk for CTO Forum
Service Mesh Talk for CTO ForumRick Hightower
 
MuleSoft Meetup Singapore #8 March 2021
MuleSoft Meetup Singapore #8 March 2021MuleSoft Meetup Singapore #8 March 2021
MuleSoft Meetup Singapore #8 March 2021Julian Douch
 
Open Source Bristol 30 March 2022
Open Source Bristol 30 March 2022Open Source Bristol 30 March 2022
Open Source Bristol 30 March 2022Timothy Spann
 
Strimzi - Where Apache Kafka meets OpenShift - OpenShift Spain MeetUp
Strimzi - Where Apache Kafka meets OpenShift - OpenShift Spain MeetUpStrimzi - Where Apache Kafka meets OpenShift - OpenShift Spain MeetUp
Strimzi - Where Apache Kafka meets OpenShift - OpenShift Spain MeetUpJosé Román Martín Gil
 
Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)Rick Hightower
 
Unifying Messaging, Queueing & Light Weight Compute Using Apache Pulsar
Unifying Messaging, Queueing & Light Weight Compute Using Apache PulsarUnifying Messaging, Queueing & Light Weight Compute Using Apache Pulsar
Unifying Messaging, Queueing & Light Weight Compute Using Apache PulsarKarthik Ramasamy
 

Ähnlich wie Building the Next-Generation Messaging Platform on Pulsar at Intuit - Pulsar Summit NA 2021 Keynote (20)

Netflix Data Pipeline With Kafka
Netflix Data Pipeline With KafkaNetflix Data Pipeline With Kafka
Netflix Data Pipeline With Kafka
 
Netflix Data Pipeline With Kafka
Netflix Data Pipeline With KafkaNetflix Data Pipeline With Kafka
Netflix Data Pipeline With Kafka
 
Improving performance and efficiency with Network Virtualization Overlays
Improving performance and efficiency with Network Virtualization OverlaysImproving performance and efficiency with Network Virtualization Overlays
Improving performance and efficiency with Network Virtualization Overlays
 
Move fast and make things with microservices
Move fast and make things with microservicesMove fast and make things with microservices
Move fast and make things with microservices
 
IBM MQ High Availabillity and Disaster Recovery (2017 version)
IBM MQ High Availabillity and Disaster Recovery (2017 version)IBM MQ High Availabillity and Disaster Recovery (2017 version)
IBM MQ High Availabillity and Disaster Recovery (2017 version)
 
Capital One Delivers Risk Insights in Real Time with Stream Processing
Capital One Delivers Risk Insights in Real Time with Stream ProcessingCapital One Delivers Risk Insights in Real Time with Stream Processing
Capital One Delivers Risk Insights in Real Time with Stream Processing
 
PortoTechHub - Hail Hydrate! From Stream to Lake with Apache Pulsar and Friends
PortoTechHub  - Hail Hydrate! From Stream to Lake with Apache Pulsar and FriendsPortoTechHub  - Hail Hydrate! From Stream to Lake with Apache Pulsar and Friends
PortoTechHub - Hail Hydrate! From Stream to Lake with Apache Pulsar and Friends
 
Princeton Dec 2022 Meetup_ NiFi + Flink + Pulsar
Princeton Dec 2022 Meetup_ NiFi + Flink + PulsarPrinceton Dec 2022 Meetup_ NiFi + Flink + Pulsar
Princeton Dec 2022 Meetup_ NiFi + Flink + Pulsar
 
Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...
Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...
Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...
 
Availability of Kafka - Beyond the Brokers | Andrew Borley and Emma Humber, IBM
Availability of Kafka - Beyond the Brokers | Andrew Borley and Emma Humber, IBMAvailability of Kafka - Beyond the Brokers | Andrew Borley and Emma Humber, IBM
Availability of Kafka - Beyond the Brokers | Andrew Borley and Emma Humber, IBM
 
KubeCon + CloudNative Con NA 2021 | A New Generation of NATS
KubeCon + CloudNative Con NA 2021 | A New Generation of NATSKubeCon + CloudNative Con NA 2021 | A New Generation of NATS
KubeCon + CloudNative Con NA 2021 | A New Generation of NATS
 
Building and Scaling Your First Containerized Microservices
Building and Scaling Your First Containerized MicroservicesBuilding and Scaling Your First Containerized Microservices
Building and Scaling Your First Containerized Microservices
 
Enterprise-Grade Networking in OpenStack
Enterprise-Grade Networking in OpenStackEnterprise-Grade Networking in OpenStack
Enterprise-Grade Networking in OpenStack
 
Using Kubernetes to make cellular data plans cheaper for 50M users
Using Kubernetes to make cellular data plans cheaper for 50M usersUsing Kubernetes to make cellular data plans cheaper for 50M users
Using Kubernetes to make cellular data plans cheaper for 50M users
 
Service Mesh Talk for CTO Forum
Service Mesh Talk for CTO ForumService Mesh Talk for CTO Forum
Service Mesh Talk for CTO Forum
 
MuleSoft Meetup Singapore #8 March 2021
MuleSoft Meetup Singapore #8 March 2021MuleSoft Meetup Singapore #8 March 2021
MuleSoft Meetup Singapore #8 March 2021
 
Open Source Bristol 30 March 2022
Open Source Bristol 30 March 2022Open Source Bristol 30 March 2022
Open Source Bristol 30 March 2022
 
Strimzi - Where Apache Kafka meets OpenShift - OpenShift Spain MeetUp
Strimzi - Where Apache Kafka meets OpenShift - OpenShift Spain MeetUpStrimzi - Where Apache Kafka meets OpenShift - OpenShift Spain MeetUp
Strimzi - Where Apache Kafka meets OpenShift - OpenShift Spain MeetUp
 
Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)
 
Unifying Messaging, Queueing & Light Weight Compute Using Apache Pulsar
Unifying Messaging, Queueing & Light Weight Compute Using Apache PulsarUnifying Messaging, Queueing & Light Weight Compute Using Apache Pulsar
Unifying Messaging, Queueing & Light Weight Compute Using Apache Pulsar
 

Mehr von StreamNative

Is Using KoP (Kafka-on-Pulsar) a Good Idea? - Pulsar Summit SF 2022
Is Using KoP (Kafka-on-Pulsar) a Good Idea? - Pulsar Summit SF 2022Is Using KoP (Kafka-on-Pulsar) a Good Idea? - Pulsar Summit SF 2022
Is Using KoP (Kafka-on-Pulsar) a Good Idea? - Pulsar Summit SF 2022StreamNative
 
Building an Asynchronous Application Framework with Python and Pulsar - Pulsa...
Building an Asynchronous Application Framework with Python and Pulsar - Pulsa...Building an Asynchronous Application Framework with Python and Pulsar - Pulsa...
Building an Asynchronous Application Framework with Python and Pulsar - Pulsa...StreamNative
 
Blue-green deploys with Pulsar & Envoy in an event-driven microservice ecosys...
Blue-green deploys with Pulsar & Envoy in an event-driven microservice ecosys...Blue-green deploys with Pulsar & Envoy in an event-driven microservice ecosys...
Blue-green deploys with Pulsar & Envoy in an event-driven microservice ecosys...StreamNative
 
Distributed Database Design Decisions to Support High Performance Event Strea...
Distributed Database Design Decisions to Support High Performance Event Strea...Distributed Database Design Decisions to Support High Performance Event Strea...
Distributed Database Design Decisions to Support High Performance Event Strea...StreamNative
 
Simplify Pulsar Functions Development with SQL - Pulsar Summit SF 2022
Simplify Pulsar Functions Development with SQL - Pulsar Summit SF 2022Simplify Pulsar Functions Development with SQL - Pulsar Summit SF 2022
Simplify Pulsar Functions Development with SQL - Pulsar Summit SF 2022StreamNative
 
Towards a ZooKeeper-less Pulsar, etcd, etcd, etcd. - Pulsar Summit SF 2022
Towards a ZooKeeper-less Pulsar, etcd, etcd, etcd. - Pulsar Summit SF 2022Towards a ZooKeeper-less Pulsar, etcd, etcd, etcd. - Pulsar Summit SF 2022
Towards a ZooKeeper-less Pulsar, etcd, etcd, etcd. - Pulsar Summit SF 2022StreamNative
 
Validating Apache Pulsar’s Behavior under Failure Conditions - Pulsar Summit ...
Validating Apache Pulsar’s Behavior under Failure Conditions - Pulsar Summit ...Validating Apache Pulsar’s Behavior under Failure Conditions - Pulsar Summit ...
Validating Apache Pulsar’s Behavior under Failure Conditions - Pulsar Summit ...StreamNative
 
Cross the Streams! Creating Streaming Data Pipelines with Apache Flink + Apac...
Cross the Streams! Creating Streaming Data Pipelines with Apache Flink + Apac...Cross the Streams! Creating Streaming Data Pipelines with Apache Flink + Apac...
Cross the Streams! Creating Streaming Data Pipelines with Apache Flink + Apac...StreamNative
 
Message Redelivery: An Unexpected Journey - Pulsar Summit SF 2022
Message Redelivery: An Unexpected Journey - Pulsar Summit SF 2022Message Redelivery: An Unexpected Journey - Pulsar Summit SF 2022
Message Redelivery: An Unexpected Journey - Pulsar Summit SF 2022StreamNative
 
Unlocking the Power of Lakehouse Architectures with Apache Pulsar and Apache ...
Unlocking the Power of Lakehouse Architectures with Apache Pulsar and Apache ...Unlocking the Power of Lakehouse Architectures with Apache Pulsar and Apache ...
Unlocking the Power of Lakehouse Architectures with Apache Pulsar and Apache ...StreamNative
 
Understanding Broker Load Balancing - Pulsar Summit SF 2022
Understanding Broker Load Balancing - Pulsar Summit SF 2022Understanding Broker Load Balancing - Pulsar Summit SF 2022
Understanding Broker Load Balancing - Pulsar Summit SF 2022StreamNative
 
Building an Asynchronous Application Framework with Python and Pulsar - Pulsa...
Building an Asynchronous Application Framework with Python and Pulsar - Pulsa...Building an Asynchronous Application Framework with Python and Pulsar - Pulsa...
Building an Asynchronous Application Framework with Python and Pulsar - Pulsa...StreamNative
 
Pulsar's Journey in Yahoo!: On-prem, Cloud and Hybrid - Pulsar Summit SF 2022
Pulsar's Journey in Yahoo!: On-prem, Cloud and Hybrid - Pulsar Summit SF 2022Pulsar's Journey in Yahoo!: On-prem, Cloud and Hybrid - Pulsar Summit SF 2022
Pulsar's Journey in Yahoo!: On-prem, Cloud and Hybrid - Pulsar Summit SF 2022StreamNative
 
Event-Driven Applications Done Right - Pulsar Summit SF 2022
Event-Driven Applications Done Right - Pulsar Summit SF 2022Event-Driven Applications Done Right - Pulsar Summit SF 2022
Event-Driven Applications Done Right - Pulsar Summit SF 2022StreamNative
 
Pulsar @ Scale. 200M RPM and 1K instances - Pulsar Summit SF 2022
Pulsar @ Scale. 200M RPM and 1K instances - Pulsar Summit SF 2022Pulsar @ Scale. 200M RPM and 1K instances - Pulsar Summit SF 2022
Pulsar @ Scale. 200M RPM and 1K instances - Pulsar Summit SF 2022StreamNative
 
Data Democracy: Journey to User-Facing Analytics - Pulsar Summit SF 2022
Data Democracy: Journey to User-Facing Analytics - Pulsar Summit SF 2022Data Democracy: Journey to User-Facing Analytics - Pulsar Summit SF 2022
Data Democracy: Journey to User-Facing Analytics - Pulsar Summit SF 2022StreamNative
 
Beam + Pulsar: Powerful Stream Processing at Scale - Pulsar Summit SF 2022
Beam + Pulsar: Powerful Stream Processing at Scale - Pulsar Summit SF 2022Beam + Pulsar: Powerful Stream Processing at Scale - Pulsar Summit SF 2022
Beam + Pulsar: Powerful Stream Processing at Scale - Pulsar Summit SF 2022StreamNative
 
Welcome and Opening Remarks - Pulsar Summit SF 2022
Welcome and Opening Remarks - Pulsar Summit SF 2022Welcome and Opening Remarks - Pulsar Summit SF 2022
Welcome and Opening Remarks - Pulsar Summit SF 2022StreamNative
 
Log System As Backbone – How We Built the World’s Most Advanced Vector Databa...
Log System As Backbone – How We Built the World’s Most Advanced Vector Databa...Log System As Backbone – How We Built the World’s Most Advanced Vector Databa...
Log System As Backbone – How We Built the World’s Most Advanced Vector Databa...StreamNative
 
MoP(MQTT on Pulsar) - a Powerful Tool for Apache Pulsar in IoT - Pulsar Summi...
MoP(MQTT on Pulsar) - a Powerful Tool for Apache Pulsar in IoT - Pulsar Summi...MoP(MQTT on Pulsar) - a Powerful Tool for Apache Pulsar in IoT - Pulsar Summi...
MoP(MQTT on Pulsar) - a Powerful Tool for Apache Pulsar in IoT - Pulsar Summi...StreamNative
 

Mehr von StreamNative (20)

Is Using KoP (Kafka-on-Pulsar) a Good Idea? - Pulsar Summit SF 2022
Is Using KoP (Kafka-on-Pulsar) a Good Idea? - Pulsar Summit SF 2022Is Using KoP (Kafka-on-Pulsar) a Good Idea? - Pulsar Summit SF 2022
Is Using KoP (Kafka-on-Pulsar) a Good Idea? - Pulsar Summit SF 2022
 
Building an Asynchronous Application Framework with Python and Pulsar - Pulsa...
Building an Asynchronous Application Framework with Python and Pulsar - Pulsa...Building an Asynchronous Application Framework with Python and Pulsar - Pulsa...
Building an Asynchronous Application Framework with Python and Pulsar - Pulsa...
 
Blue-green deploys with Pulsar & Envoy in an event-driven microservice ecosys...
Blue-green deploys with Pulsar & Envoy in an event-driven microservice ecosys...Blue-green deploys with Pulsar & Envoy in an event-driven microservice ecosys...
Blue-green deploys with Pulsar & Envoy in an event-driven microservice ecosys...
 
Distributed Database Design Decisions to Support High Performance Event Strea...
Distributed Database Design Decisions to Support High Performance Event Strea...Distributed Database Design Decisions to Support High Performance Event Strea...
Distributed Database Design Decisions to Support High Performance Event Strea...
 
Simplify Pulsar Functions Development with SQL - Pulsar Summit SF 2022
Simplify Pulsar Functions Development with SQL - Pulsar Summit SF 2022Simplify Pulsar Functions Development with SQL - Pulsar Summit SF 2022
Simplify Pulsar Functions Development with SQL - Pulsar Summit SF 2022
 
Towards a ZooKeeper-less Pulsar, etcd, etcd, etcd. - Pulsar Summit SF 2022
Towards a ZooKeeper-less Pulsar, etcd, etcd, etcd. - Pulsar Summit SF 2022Towards a ZooKeeper-less Pulsar, etcd, etcd, etcd. - Pulsar Summit SF 2022
Towards a ZooKeeper-less Pulsar, etcd, etcd, etcd. - Pulsar Summit SF 2022
 
Validating Apache Pulsar’s Behavior under Failure Conditions - Pulsar Summit ...
Validating Apache Pulsar’s Behavior under Failure Conditions - Pulsar Summit ...Validating Apache Pulsar’s Behavior under Failure Conditions - Pulsar Summit ...
Validating Apache Pulsar’s Behavior under Failure Conditions - Pulsar Summit ...
 
Cross the Streams! Creating Streaming Data Pipelines with Apache Flink + Apac...
Cross the Streams! Creating Streaming Data Pipelines with Apache Flink + Apac...Cross the Streams! Creating Streaming Data Pipelines with Apache Flink + Apac...
Cross the Streams! Creating Streaming Data Pipelines with Apache Flink + Apac...
 
Message Redelivery: An Unexpected Journey - Pulsar Summit SF 2022
Message Redelivery: An Unexpected Journey - Pulsar Summit SF 2022Message Redelivery: An Unexpected Journey - Pulsar Summit SF 2022
Message Redelivery: An Unexpected Journey - Pulsar Summit SF 2022
 
Unlocking the Power of Lakehouse Architectures with Apache Pulsar and Apache ...
Unlocking the Power of Lakehouse Architectures with Apache Pulsar and Apache ...Unlocking the Power of Lakehouse Architectures with Apache Pulsar and Apache ...
Unlocking the Power of Lakehouse Architectures with Apache Pulsar and Apache ...
 
Understanding Broker Load Balancing - Pulsar Summit SF 2022
Understanding Broker Load Balancing - Pulsar Summit SF 2022Understanding Broker Load Balancing - Pulsar Summit SF 2022
Understanding Broker Load Balancing - Pulsar Summit SF 2022
 
Building an Asynchronous Application Framework with Python and Pulsar - Pulsa...
Building an Asynchronous Application Framework with Python and Pulsar - Pulsa...Building an Asynchronous Application Framework with Python and Pulsar - Pulsa...
Building an Asynchronous Application Framework with Python and Pulsar - Pulsa...
 
Pulsar's Journey in Yahoo!: On-prem, Cloud and Hybrid - Pulsar Summit SF 2022
Pulsar's Journey in Yahoo!: On-prem, Cloud and Hybrid - Pulsar Summit SF 2022Pulsar's Journey in Yahoo!: On-prem, Cloud and Hybrid - Pulsar Summit SF 2022
Pulsar's Journey in Yahoo!: On-prem, Cloud and Hybrid - Pulsar Summit SF 2022
 
Event-Driven Applications Done Right - Pulsar Summit SF 2022
Event-Driven Applications Done Right - Pulsar Summit SF 2022Event-Driven Applications Done Right - Pulsar Summit SF 2022
Event-Driven Applications Done Right - Pulsar Summit SF 2022
 
Pulsar @ Scale. 200M RPM and 1K instances - Pulsar Summit SF 2022
Pulsar @ Scale. 200M RPM and 1K instances - Pulsar Summit SF 2022Pulsar @ Scale. 200M RPM and 1K instances - Pulsar Summit SF 2022
Pulsar @ Scale. 200M RPM and 1K instances - Pulsar Summit SF 2022
 
Data Democracy: Journey to User-Facing Analytics - Pulsar Summit SF 2022
Data Democracy: Journey to User-Facing Analytics - Pulsar Summit SF 2022Data Democracy: Journey to User-Facing Analytics - Pulsar Summit SF 2022
Data Democracy: Journey to User-Facing Analytics - Pulsar Summit SF 2022
 
Beam + Pulsar: Powerful Stream Processing at Scale - Pulsar Summit SF 2022
Beam + Pulsar: Powerful Stream Processing at Scale - Pulsar Summit SF 2022Beam + Pulsar: Powerful Stream Processing at Scale - Pulsar Summit SF 2022
Beam + Pulsar: Powerful Stream Processing at Scale - Pulsar Summit SF 2022
 
Welcome and Opening Remarks - Pulsar Summit SF 2022
Welcome and Opening Remarks - Pulsar Summit SF 2022Welcome and Opening Remarks - Pulsar Summit SF 2022
Welcome and Opening Remarks - Pulsar Summit SF 2022
 
Log System As Backbone – How We Built the World’s Most Advanced Vector Databa...
Log System As Backbone – How We Built the World’s Most Advanced Vector Databa...Log System As Backbone – How We Built the World’s Most Advanced Vector Databa...
Log System As Backbone – How We Built the World’s Most Advanced Vector Databa...
 
MoP(MQTT on Pulsar) - a Powerful Tool for Apache Pulsar in IoT - Pulsar Summi...
MoP(MQTT on Pulsar) - a Powerful Tool for Apache Pulsar in IoT - Pulsar Summi...MoP(MQTT on Pulsar) - a Powerful Tool for Apache Pulsar in IoT - Pulsar Summi...
MoP(MQTT on Pulsar) - a Powerful Tool for Apache Pulsar in IoT - Pulsar Summi...
 

Kürzlich hochgeladen

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 

Kürzlich hochgeladen (20)

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 

Building the Next-Generation Messaging Platform on Pulsar at Intuit - Pulsar Summit NA 2021 Keynote

  • 1. Presenters: Madhavan Narayanan Sajith Sebastian Amit Kaushal Gokul Sarangapani Pulsar Journey@Intuit Building our next-gen messaging platform Topic : persistent://pulsar/intuit/our-migration-story
  • 2. Intuit Confidential and Proprietary 2 Messaging at Intuit Background of Intuit Messaging platform and current technology used Need for Migration Limitations of the current platform and our migration goals Messaging with Pulsar Feasibility study and the target architecture for next-gen platform Challenges and Solutions Problems faced and the solutions Journey Ahead The future roadmap items Agenda
  • 4. Intuit Confidential and Proprietary 4 Intuit Messaging Platform - Current State Tax Filing Workflow Dispatchers Order Management Payments Processing Billing Schedulers Processors Observers … … Products Use Cases Services The Platform Point-to-Point Queues Multi-Subscription Topics Persistent Storage Multi-Region Support Active-Active Use cases Highly resilient ActiveMQ Network-of- Brokers Intuit Messaging Platform
  • 5. Intuit Confidential and Proprietary 5 Messaging with ActiveMQ Network-of-Brokers Broker2 Broker1 WEST EAST Producers Broker3 Broker4 Broker5 Broker6 ➢ ActiveMQ brokers distributed across 2 regions ➢ NLB in each region to route connections to brokers ➢ Route53 for latency based routing to closest NLB ➢ All brokers know each other and form a network. Not easily scalable ➢ Brokers store messages in local files ➢ Producers and Consumers use JMS APIs and connect to the Route53 endpoint NLB NLB Route53 Consumers JMS API JMS API Each broker has connection to every other broker
  • 6. Intuit Confidential and Proprietary 6 Active-Active support with ActiveMQ ActiveMQ Network-of- Brokers Broker2 Broker1 WEST EAST West Producer Broker3 Broker4 Broker5 Broker6 East Consumer East Producer ➢ Producers and Consumers connect to broker(s) in the local region ➢ Producers always see low latency ➢ Messages for a given topic can be stored in multiple brokers ➢ Messages are internally forwarded between brokers and find their way to consumers. There is no message replication ➢ Inefficient and waste of bandwidth due to the high volume of inter-broker traffic. ➢ Highly resilient to individual broker failures.
  • 7. Intuit Confidential and Proprietary 7 Handling Region failure with ActiveMQ West brokers down Broker2 Broker1 WEST EAST West Producer Broker3 Broker4 Broker5 Broker6 East Consumer East Producer ➢ Producers transparently reconnect to a broker in remote region ➢ Producers now see a high publish latency ➢ However producers can continue their operation without any adverse impact ➢ Messages stored in the affected brokers are not available for consumers until they come back ‘online’ ➢ The network automatically recovers once the brokers are available
  • 9. Intuit Confidential and Proprietary 9 Technology ➢ ActiveMQ is an outdated technology, with architectural limitations ➢ To keep abreast with latest, modern, cloud-native technology Scalability ➢ Scalability in ActiveMQ NoB is non-trivial and complex ➢ Significant increase in overheads as more brokers are added to the network Throughput ➢ Maximum throughput of ActiveMQ NoB is limited, with little room to grow ➢ Need to be ready for future needs at Intuit. Significant growth in traffic projected Cost ➢ High Price-Performance ratio of NoB. Significant loss of bandwidth in inter-broker traffic ➢ Need a solution that maximizes throughput with available resources Operations ➢ Lack of central management in NoB. High cost of maintenance operations ➢ Lack of cluster level statistics and monitoring Why we were looking to migrate
  • 10. Intuit Confidential and Proprietary 10 Retain ● Multi-Region support ● Active-Active support ● Resiliency to system failures While we were evaluating multiple options against ActiveMQ capabilities, our focus was to Migration Focus Improve ● Ease of scalability ● Ease of operations ● Throughput and performance Avoid ● A single layer handling both storage and customer traffic ● Inefficient inter-broker traffic within the platform ● Duplicate message storage for each subscriber
  • 12. Intuit Confidential and Proprietary 12 Feasibility Study ➢ Setup a Pulsar cluster that was equivalent in cost to an ActiveMQ NoB ➢ Extended Pulsar Broker to encrypt/decrypt messages for parity with existing system ➢ Verified all basic messaging functions for queueing use case (produce/consume operations for persistent topics, single and multiple subscriptions) ➢ Verified scalability of broker and proxy tiers ➢ Verified dynamic addition of bookies, racks placement strategies and namespace isolation ➢ Ran extensive performance tests What we did Results ➢ For nearly the same cost, a pulsar cluster was able to support 3.5x times the throughput of an equivalent ActiveMQ NoB ➢ Highly consistent and contained publish latencies even at high throughput traffic. Unlike in the case of ActiveMQ brokers, producers were relatively unaffected by the presence of consumer connections
  • 13. Intuit Confidential and Proprietary 13 Next Gen Messaging Platform with Pulsar ➢ Global zookeeper spanning multiple regions ➢ Proxies, Brokers and Bookies connect to a local zookeeper ➢ Scalable and extensible Proxy tier for managing traffic ➢ Scalable Broker tier for serving messages ➢ A separate scalable storage tier with rack support ➢ JMS wrapper over pulsar client library JMS Producers JMS API Pulsar Client JMS Consumers JMS API Pulsar Client Pulsar SDK Producers Pulsar Client Pulsar SDK Consumers Pulsar Client
  • 15. Intuit Confidential and Proprietary 15 Challenge #1 - Zookeeper Quorum Issue ➢ Intuit operates primarily in 2 AWS regions in US, namely us-west-2 and us-east-2 ➢ Messaging platform also spans these 2 regions only ➢ When a region failure occurs within the platform, the entire pulsar cluster collapses due to zookeeper failure ➢ Zookeepers lose majority quorum when one region is down and take the cluster down ➢ Our clients suddenly start failing since the cluster is unavailable. This is a regression Issue Solution ➢ We added one more region ‘us-east-1’ to the cluster ➢ Only one zookeeper instance runs in ‘us-east-1’. No other components are used there ➢ us-east-1 is a rarely used region by Intuit services and doesn’t have the same support/SLA from AWS as the other 2 regions
  • 16. Intuit Confidential and Proprietary 16 Challenge #2 - Zookeeper issue again ➢ With zookeeper in 3 regions, we started seeing frequent issues even during normal mode of operation. i.e when all the 3 regions were active ➢ Zookeepers would frequently seize and stall making the cluster unavailable ➢ Zookeeper in us-east-1 region was becoming the leader most of the time, but was unable to moderate and keep the quorum working. ➢ This was due to high network latency in us-east-1. Also, the overall cluster performance dropped significantly when an east zookeeper become the leader (most of traffic is in west) ➢ Unable to find any solution to precisely control who becomes the leader in a ZK cluster Issue Solution ➢ After a lot of troubleshooting and experiments, we found that the zookeeper instance with a larger server id value had more probability of becoming the leader ➢ Now we just had to control the sequence of zookeeper server id values in configuration, keeping the us-east-1 instance at the smallest value ➢ Never saw the issue again after this fix
  • 17. Challenges & Solutions Latency and Ledger Issues
  • 18. Intuit Confidential and Proprietary 18 Challenge #3 - High publish latencies ➢ Pulsar design assigns a single owner broker for a topic. All traffic for the topic is handled by this broker ➢ All message producers from both regions end up getting connected to this single broker (via proxies in local region) ➢ This results in latency disparity between producers who are in the same region as the broker and the ones who are in remote region ➢ The cross region latencies are as high as 50ms average. This was a serious regression when compared to ActiveMQ Network-of-Brokers Issue Solution ➢ Since our customers use region-agnostic topic names and expect active-active support from us, we had to implement region-level isolation of topics underneath ➢ Implemented a service discovery extension that is configured in proxy to handle custom topic name lookups. Also used namespace isolation policies to pin topics to specific brokers ➢ Implemented a wrapper over pulsar client library that uses the extended lookup to transparently map the region-agnostic topic name to a region-specific sub topic. ➢ Consumers read messages from all the sub topics
  • 19. Intuit Confidential and Proprietary 19 Brokers West Namespace Brokers Bookie2 west-2a Bookie1 west-2b Bookie2 west-2b Bookie1 west-2c Bookie2 west-2c Rack1 Rack2 Rack3 Bookie Group - West Local Bookie1 west-2a Bookie2 east-2a Bookie1 east-2b Bookie2 east-2b Bookie1 west-2c Bookie2 east-2c Rack1 Rack2 Rack3 Bookie Group - East Local Bookie1 east-2a Pulsar Proxy Service Discovery WEST EAST Zookeepers Brokers Pulsar Proxy Service Discovery JMS Producers JMS API Pulsar Client JMS Consumers JMS API Pulsar Client Pulsar SDK Producers Pulsar Client Pulsar SDK Consumers Pulsar Client Challenge #3 - High publish latencies - Solution East Namespace Brokers
  • 20. Intuit Confidential and Proprietary 20 Challenge #4 - Ledger recovery failure ➢ Messages for a topic are stored in a sequence of ledgers in BookKeeper. The owner broker for the topic manages the state of the ledgers. ➢ Ledgers are replicated to multiple bookies based on the write quorum value ➢ When a bookie crashes, open ledgers in it are closed by brokers which then create new ledgers using other available bookies. When a broker crashes, other brokers assume ownership of the abandoned topics and are able to re-open the ledgers ➢ However in case of multiple system failures resulting in a combination of broker and bookie crashes, it leads to a situation where the ledgers cannot be recovered and topic producers are stalled and new messages cannot be published. This results in business impact Issue Solution ➢ For recovery, a quick restart of the bookies is needed. Due to sync operation, a delayed restart can overshoot the SLA and result in customer impact ➢ We are working on a solution to use our custom service discovery to detect this condition and redirect producer to the sub-topic for the remote region.
  • 22. Intuit Confidential and Proprietary 22 Journey Ahead ➢ We are in production now with limited availability to restricted set of customers ➢ As we move towards making the platform generally available to all customers, the following are some items of focus ○ Enhancing and fortifying the resiliency of the system ○ Enabling Transaction Support ○ Auto scaling of brokers ○ Enabling Pulsar Schema Support using a custom schema registry ➢ We also have long term plans to ○ Move the platform to Intuit’s Kubernetes Platform ○ Support multi-cloud messaging
  • 23. Intuit Confidential and Proprietary 23 Let us know your thoughts Please write your feedback and comments to ● madhavan_narayanan@intuit.com ● gokul_s@intuit.com ● sajith_sebastian@intuit.com ● amit_kaushal@intuit.com