SlideShare a Scribd company logo
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

More Related Content

What's hot

PostgreSQL HA
PostgreSQL   HAPostgreSQL   HA
PostgreSQL HA
haroonm
 
RocksDB compaction
RocksDB compactionRocksDB compaction
RocksDB compaction
MIJIN AN
 
Handle Large Messages In Apache Kafka
Handle Large Messages In Apache KafkaHandle Large Messages In Apache Kafka
Handle Large Messages In Apache Kafka
Jiangjie Qin
 
A Deep Dive into Kafka Controller
A Deep Dive into Kafka ControllerA Deep Dive into Kafka Controller
A Deep Dive into Kafka Controller
confluent
 
Introduction to Kafka Cruise Control
Introduction to Kafka Cruise ControlIntroduction to Kafka Cruise Control
Introduction to Kafka Cruise Control
Jiangjie Qin
 
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
SANG WON PARK
 
The Rise of ZStandard: Apache Spark/Parquet/ORC/Avro
The Rise of ZStandard: Apache Spark/Parquet/ORC/AvroThe Rise of ZStandard: Apache Spark/Parquet/ORC/Avro
The Rise of ZStandard: Apache Spark/Parquet/ORC/Avro
Databricks
 
Kafka internals
Kafka internalsKafka internals
Kafka internals
David Groozman
 
How to build massive service for advance
How to build massive service for advanceHow to build massive service for advance
How to build massive service for advance
DaeMyung Kang
 
NGINX: Basics and Best Practices
NGINX: Basics and Best PracticesNGINX: Basics and Best Practices
NGINX: Basics and Best Practices
NGINX, Inc.
 
Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기
NeoClova
 
Apache Kafka Best Practices
Apache Kafka Best PracticesApache Kafka Best Practices
Apache Kafka Best Practices
DataWorks Summit/Hadoop Summit
 
RocksDB Performance and Reliability Practices
RocksDB Performance and Reliability PracticesRocksDB Performance and Reliability Practices
RocksDB Performance and Reliability Practices
Yoshinori Matsunobu
 
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
Flink Forward
 
DNSキャッシュサーバ チューニングの勘所
DNSキャッシュサーバ チューニングの勘所DNSキャッシュサーバ チューニングの勘所
DNSキャッシュサーバ チューニングの勘所
hdais
 
Elastic 101 - Get started
Elastic 101 - Get startedElastic 101 - Get started
Elastic 101 - Get started
Ismaeel Enjreny
 
Kafka Streams at Scale (Deepak Goyal, Walmart Labs) Kafka Summit London 2019
Kafka Streams at Scale (Deepak Goyal, Walmart Labs) Kafka Summit London 2019Kafka Streams at Scale (Deepak Goyal, Walmart Labs) Kafka Summit London 2019
Kafka Streams at Scale (Deepak Goyal, Walmart Labs) Kafka Summit London 2019
confluent
 
MySQL High Availability Solutions
MySQL High Availability SolutionsMySQL High Availability Solutions
MySQL High Availability Solutions
Mydbops
 
Galera Cluster for MySQL vs MySQL (NDB) Cluster: A High Level Comparison
Galera Cluster for MySQL vs MySQL (NDB) Cluster: A High Level Comparison Galera Cluster for MySQL vs MySQL (NDB) Cluster: A High Level Comparison
Galera Cluster for MySQL vs MySQL (NDB) Cluster: A High Level Comparison
Severalnines
 
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링
OpenStack Korea Community
 

What's hot (20)

PostgreSQL HA
PostgreSQL   HAPostgreSQL   HA
PostgreSQL HA
 
RocksDB compaction
RocksDB compactionRocksDB compaction
RocksDB compaction
 
Handle Large Messages In Apache Kafka
Handle Large Messages In Apache KafkaHandle Large Messages In Apache Kafka
Handle Large Messages In Apache Kafka
 
A Deep Dive into Kafka Controller
A Deep Dive into Kafka ControllerA Deep Dive into Kafka Controller
A Deep Dive into Kafka Controller
 
Introduction to Kafka Cruise Control
Introduction to Kafka Cruise ControlIntroduction to Kafka Cruise Control
Introduction to Kafka Cruise Control
 
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
 
The Rise of ZStandard: Apache Spark/Parquet/ORC/Avro
The Rise of ZStandard: Apache Spark/Parquet/ORC/AvroThe Rise of ZStandard: Apache Spark/Parquet/ORC/Avro
The Rise of ZStandard: Apache Spark/Parquet/ORC/Avro
 
Kafka internals
Kafka internalsKafka internals
Kafka internals
 
How to build massive service for advance
How to build massive service for advanceHow to build massive service for advance
How to build massive service for advance
 
NGINX: Basics and Best Practices
NGINX: Basics and Best PracticesNGINX: Basics and Best Practices
NGINX: Basics and Best Practices
 
Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기
 
Apache Kafka Best Practices
Apache Kafka Best PracticesApache Kafka Best Practices
Apache Kafka Best Practices
 
RocksDB Performance and Reliability Practices
RocksDB Performance and Reliability PracticesRocksDB Performance and Reliability Practices
RocksDB Performance and Reliability Practices
 
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
 
DNSキャッシュサーバ チューニングの勘所
DNSキャッシュサーバ チューニングの勘所DNSキャッシュサーバ チューニングの勘所
DNSキャッシュサーバ チューニングの勘所
 
Elastic 101 - Get started
Elastic 101 - Get startedElastic 101 - Get started
Elastic 101 - Get started
 
Kafka Streams at Scale (Deepak Goyal, Walmart Labs) Kafka Summit London 2019
Kafka Streams at Scale (Deepak Goyal, Walmart Labs) Kafka Summit London 2019Kafka Streams at Scale (Deepak Goyal, Walmart Labs) Kafka Summit London 2019
Kafka Streams at Scale (Deepak Goyal, Walmart Labs) Kafka Summit London 2019
 
MySQL High Availability Solutions
MySQL High Availability SolutionsMySQL High Availability Solutions
MySQL High Availability Solutions
 
Galera Cluster for MySQL vs MySQL (NDB) Cluster: A High Level Comparison
Galera Cluster for MySQL vs MySQL (NDB) Cluster: A High Level Comparison Galera Cluster for MySQL vs MySQL (NDB) Cluster: A High Level Comparison
Galera Cluster for MySQL vs MySQL (NDB) Cluster: A High Level Comparison
 
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링
 

Similar to 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 Kafka
Steven Wu
 
Netflix Data Pipeline With Kafka
Netflix Data Pipeline With KafkaNetflix Data Pipeline With Kafka
Netflix Data Pipeline With Kafka
Allen (Xiaozhong) Wang
 
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
Adam 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 microservices
Mithun 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 Processing
confluent
 
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
Timothy 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 + Pulsar
Timothy Spann
 
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
HostedbyConfluent
 
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
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
Amazon Web Services
 
Enterprise-Grade Networking in OpenStack
Enterprise-Grade Networking in OpenStackEnterprise-Grade Networking in OpenStack
Enterprise-Grade Networking in OpenStack
Marten 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 users
Mirantis
 
Service Mesh Talk for CTO Forum
Service Mesh Talk for CTO ForumService Mesh Talk for CTO Forum
Service Mesh Talk for CTO Forum
Rick Hightower
 
MuleSoft Meetup Singapore #8 March 2021
MuleSoft Meetup Singapore #8 March 2021MuleSoft Meetup Singapore #8 March 2021
MuleSoft Meetup Singapore #8 March 2021
Julian Douch
 
Open Source Bristol 30 March 2022
Open Source Bristol 30 March 2022Open Source Bristol 30 March 2022
Open Source Bristol 30 March 2022
Timothy 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 MeetUp
José 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 Pulsar
Karthik Ramasamy
 
Pulsar - Distributed pub/sub platform
Pulsar - Distributed pub/sub platformPulsar - Distributed pub/sub platform
Pulsar - Distributed pub/sub platform
Matteo Merli
 

Similar to 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
 
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
 
Pulsar - Distributed pub/sub platform
Pulsar - Distributed pub/sub platformPulsar - Distributed pub/sub platform
Pulsar - Distributed pub/sub platform
 

More from 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 2022
StreamNative
 
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 2022
StreamNative
 
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
StreamNative
 
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 2022
StreamNative
 
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 2022
StreamNative
 
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 2022
StreamNative
 
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
StreamNative
 
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
StreamNative
 
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
StreamNative
 
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
StreamNative
 
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
StreamNative
 
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
 

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

Recently uploaded

Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
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
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
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
 
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
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 

Recently uploaded (20)

Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
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...
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
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
 
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...
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 

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