SlideShare uma empresa Scribd logo
1 de 37
Baixar para ler offline
Apache Pulsar at Yahoo! JAPAN
Yahoo Japan Corporation
Nozomi Kurihara
Aug., 17th, 2019
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 2
Who am I?
Nozomi Kurihara
• Software engineer at Yahoo! JAPAN (April 2012 ~)
• Working on internal messaging platform using Apache Pulsar
• Committer of Apache Pulsar
• (Hobby: Board / video games!)
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
Agenda
3
1. What is Apache Pulsar?
2. Why did Yahoo! JAPAN choose Apache Pulsar?
3. How does Yahoo! JAPAN use Apache Pulsar?
4. Future plans
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 4
What is Apache Pulsar?
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 5
Apache Pulsar
Flexible pub-sub system backed by durable log storage
▪ History:
› 2014 Development started at Yahoo! Inc.
› 2015 Available in production in Yahoo! Inc.
› Sep. 2016 Open-sourced (Apache License 2.0)
› June 2017 Moved to Apache Incubator Project
› Sep. 2018 Graduated as Top Level Project!
▪ Users:
› Verizon media (Yahoo! Inc.)
› Comcast
› The Weather Channel
› Mercado Libre
› Streamlio
› Yahoo! JAPAN
etc.
▪ Competitors:
› Apache Kafka
› RabbitMQ
› Apache ActiveMQ
› Apache RocketMQ
etc.
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 6
Pub-Sub messaging
Message transmission from one system to another via Topic
▪ Producers publish messages to Topics
▪ Consumers receive only messages from Topics to which they subscribe
▪ Decoupled (no need to know each other) → asynchronous, scalable, resilient
TopicProducer
Consumer 1
Consumer 2
Consumer 3
Pub-Sub system
message
(log, notification, etc.)
Publish
Subscribe
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 7
Architecture
Producer Consumer
Broker 1 Broker 2 Broker 3
Bookie
1
Local ZK
Bookie
2
Bookie
3
Pulsar Cluster
Configuration
Store
(Global ZK)
■3 components:
‣ Broker
‣ Bookie
‣ ZooKeeper
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 8
Architecture - Broker
■Broker
‣ Serving node for clients’ requests
‣ No data locality (stateless)
Producer Consumer
Broker 1 Broker 2 Broker 3
Bookie
1
Local ZK
Bookie
2
Bookie
3
Pulsar Cluster
Configuration
Store
(Global ZK)
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 9
Architecture - Bookie
Apache BookKeeper:
distributed write-ahead log system
Producer Consumer
Broker 1 Broker 2 Broker 3
Bookie
1
Local ZK
Bookie
2
Bookie
3
Pulsar Cluster
Configuration
Store
(Global ZK)
Copyright © 2016 - 2018 The Apache Software Foundation,

licensed under the Apache License, version 2.0.
■Bookie (Apache BookKeeper)
‣ Storage node for messages
‣ Durable, Scalable, Consistent, Fault-tolerant, Low-
latency
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 10
Architecture - ZooKeeper
Copyright © 2016 - 2018 The Apache Software Foundation,

licensed under the Apache License, version 2.0.
Producer Consumer
Broker 1 Broker 2 Broker 3
Bookie
1
Local ZK
Bookie
2
Bookie
3
Pulsar Cluster
Configuration
Store
(Global ZK)
■Apache ZooKeeper
‣ Store metadata and configuration
‣ Local ZK: within local cluster
‣ Configuration Store: across all clusters
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 11
Why did Yahoo! JAPAN choose Apache Pulsar?
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 12
Yahoo! JAPAN
https://www.yahoo.co.jp/
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 13
Yahoo! JAPAN – 3 numbers
100+ 150,000+ 93,000,000+
image: aflo
Unique Browsers
(avg in 2018/7-9)
servers
(real)
services
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 14
Why did Yahoo! JAPAN choose Pulsar?
▪ Large number of customers
▪ Large number of services
▪ Sensitive/mission-critical messages
▪ Multiple data centers
→ High performance & scalability
→ Multi-tenancy
→ Durability
→ Geo-replication
Pulsar meets all these requirements!
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 15
Scalability
Just adding Brokers/Bookies increases serving/storage capacity!
(no special operation e.g. data rebalancing is required)
Producer Consumer
Broker 1 Broker 2 Broker 3
Bookie 1
Local ZK
Bookie 2 Bookie 3
Pulsar Cluster
Configuration
Store
(Global ZK)
Broker X
for more serving capacity
for more storage capacity
Bookie Y
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 16
Multi-tenancy
Multiple services can share one Pulsar system
▪ Just use Pulsar as a “Tenant” → no need to maintain own messaging system
▪ Authentication/Authorization mechanism protects messages from interception
ProducerService A Consumer
Producer Consumer
Producer Consumer
Producer Consumer
Topic A
Topic B
Topic C
Topic D
Service B
Authentication/Authorization
blocks unauthorized access
Service C
Service D
Pulsar System
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 17
Geo-replication
Producer Topic
Pulsar can replicate messages to another cluster
1. Producers only have to publish messages to Pulsar in the same data center
2. Pulsar asynchronously replicates messages to another cluster
3. Consumers can receive messages from the same data center
Pulsar Cluster A
Consumer
Consumer
Consumer
Data center A
Topic Consumer
Consumer
Consumer
Data center B
Geo-replication
Pulsar Cluster B
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 18
How does Yahoo! JAPAN use Apache Pulsar?
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
East
Broker
Bookie ZK
WebSocket
Proxy
19
System architecture in Yahoo! JAPAN
Service B
(Java)
Service A
(Node.js)
West
Broker
Bookie ZK
WebSocket
Proxy
Geo-replication
Service C
(C++)
Prometheus
+
Grafana
Collect metrics
+
Visualize
For each cluster:
・20 WSs
・15 Brokers
・10 Bookies
・5 ZKs
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 20
Users
More and more services start to use Pulsar!
• 210+ tenants
• 4000+ topics
• ~100K publishes/s
• ~180K subscribes/s
Typical use cases:
• Notification
• Job queueing
• Log pipeline
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 21
Case 1 – Notification of contents update
▪ Various contents files pushed from partner companies to Yahoo! JAPAN
▪ Notification sent to topic when contents are updated
▪ Once services receive notification, they then fetch contents from file server
Producer
Consumer
Topic
Service A
Pulsar
①send notification
③fetch content files
Consumer
Service B
Consumer
Service CPartner
Companies
weather, map, news etc.
FTP server
ftpd
②receive notification
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 22
Case 2 – Job queuing in mail service
▪ Indexing of mail can be heavy → you can execute it asynchronously
▪ Producers register jobs to Pulsar
▪ Consumers take jobs from Pulsar at their own pace
Producer
Consumer
Producer
Topic Handler for indexing
Mail BE server
Mail BE server
Pulsar
request
Register a job
Re-register if it fails
Take and process a job
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 23
Case 3 – Log pipeline
▪ Publisher: computing platforms on which YJ applications are running
▪ Subscriber: data platforms (monitoring, analyzing, storing etc.)
Pulsar
app2 app3 …
PaaS
container1
…
CaaS
container2
app1
…
Monitoring
Analyzing
Storing
PaaS_logs
CaaS_logs
Computing PFs Data PFs
…
logs
Service developers
deploy apps
check logs
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 24
Case 3 – Log pipeline
Pulsar
app2 app3 …
PaaS
container1
…
CaaS
container2
app1
…
Monitoring
Analyzing
Storing
PaaS_logs
CaaS_logs
Computing PFs Data PFs
…
Logs can have destinations
→ Consumers need to filter them
To:
Monitoring
To:
Analyzing
Filtering
discard
Filtering
Filtering
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 25
Case 3‘ – Log pipeline + filtering (Future plan)
▪ Filtering on Pulsar side
▪ Pulsar Function is helpful to filter!
Pulsarapp2 app3 …
PaaS
container1
…
CaaS
container2
app1
…
Pulsar
Functions
…
Monitoring
Analyzing
Storing
PaaS_logs
CaaS_logs
For Monitoring
For Analyzing
For Storing
Computing PFs
Data PFs
Filtering
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 26
Migration from Kafka
▪ We have an internal FaaS system using Apache OpenWhisk
▪ Problem: FaaS team had to maintain Apache Kafka
▪ Solution: migrate from Kafka to our internal Pulsar
▪ Pulsar Kafka Wrapper needs only a few configuration changes (.pom, topic name, etc.)
 <dependency>
-  <groupId>org.apache.kafka</groupId>
-  <artifactId>kakfa-clients</artifactId>
-  <version>0.10.2.1</version>
+  <groupId>org.apache.pulsar</groupId>
+  <artifactId>pulsar-client-kafka</artifactId>
+  <version>2.4.0</version>
 </dependency>
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 27
Future plans
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 28
Node.js Client
Node.js users can easily use Pulsar!
Implementation:
• https://github.com/apache/pulsar-client-node
• Based on C++ Client
Done:
✅ basic functionalities(producer, consumer, reader)
✅ test codes
✅ performance scripts
Todo:
• publish to npm registry
• Fix release flow
• support more features (multi-topic consume, unack etc.)
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 29
Admin WebUI (under development)
Administrators can easily and intuitively manage Pulsar topics!
Implementation
• https://gist.github.com/massakam/8e9bd3ca62874f18cf3ce3ecb6db1473
• Vue.js + Express
Done:
✅ basic pages (tenants, namespaces, topics etc.)
Todo:
• open repository
• advanced commands (unload, skip-messages etc.)
• authentication to Broker
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 30
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 31
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 32
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 33
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 34
Looking for the best naming!
pulsar-ui?
pulsar-console?
pulsar-manager?
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 35
Conclusion
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
Conclusion
36
▪ Apache Pulsar is fast, durable, scalable, multi-tenant messaging platform, has useful
built-in features like geo replication and Pulsar Functions etc.
▪ Yahoo! JAPAN uses it as a centralized platform for various services
▪ Node.js Client is already open-sourced and Admin UI will come soon
Welcoming your any contributions,
because it’s an OPEN-SOURCE!
Apache Pulsar at Yahoo! Japan

Mais conteúdo relacionado

Mais procurados

[March sn meetup] apache pulsar + apache nifi for cloud data lake
[March sn meetup] apache pulsar + apache nifi for cloud data lake[March sn meetup] apache pulsar + apache nifi for cloud data lake
[March sn meetup] apache pulsar + apache nifi for cloud data lake
Timothy Spann
 
Copy of Kafka-Camus
Copy of Kafka-CamusCopy of Kafka-Camus
Copy of Kafka-Camus
Deep Shah
 

Mais procurados (20)

A Unified Platform for Real-time Storage and Processing
A Unified Platform for Real-time Storage and ProcessingA Unified Platform for Real-time Storage and Processing
A Unified Platform for Real-time Storage and Processing
 
Large scale log pipeline using Apache Pulsar_Nozomi
Large scale log pipeline using Apache Pulsar_NozomiLarge scale log pipeline using Apache Pulsar_Nozomi
Large scale log pipeline using Apache Pulsar_Nozomi
 
Building a FaaS with pulsar
Building a FaaS with pulsarBuilding a FaaS with pulsar
Building a FaaS with pulsar
 
Kafka and Spark Streaming
Kafka and Spark StreamingKafka and Spark Streaming
Kafka and Spark Streaming
 
Pulsar for Kafka People
Pulsar for Kafka PeoplePulsar for Kafka People
Pulsar for Kafka People
 
Interactive querying of streams using Apache Pulsar_Jerry peng
Interactive querying of streams using Apache Pulsar_Jerry pengInteractive querying of streams using Apache Pulsar_Jerry peng
Interactive querying of streams using Apache Pulsar_Jerry peng
 
Transaction preview of Apache Pulsar
Transaction preview of Apache PulsarTransaction preview of Apache Pulsar
Transaction preview of Apache Pulsar
 
Introducing HerdDB - a distributed JVM embeddable database built upon Apache ...
Introducing HerdDB - a distributed JVM embeddable database built upon Apache ...Introducing HerdDB - a distributed JVM embeddable database built upon Apache ...
Introducing HerdDB - a distributed JVM embeddable database built upon Apache ...
 
Architecture of a Kafka camus infrastructure
Architecture of a Kafka camus infrastructureArchitecture of a Kafka camus infrastructure
Architecture of a Kafka camus infrastructure
 
Interactive Analytics on Pulsar with Pulsar SQL - Pulsar Virtual Summit Europ...
Interactive Analytics on Pulsar with Pulsar SQL - Pulsar Virtual Summit Europ...Interactive Analytics on Pulsar with Pulsar SQL - Pulsar Virtual Summit Europ...
Interactive Analytics on Pulsar with Pulsar SQL - Pulsar Virtual Summit Europ...
 
Kafka on Pulsar:bringing native Kafka protocol support to Pulsar_Sijie&Pierre
Kafka on Pulsar:bringing native Kafka protocol support to Pulsar_Sijie&PierreKafka on Pulsar:bringing native Kafka protocol support to Pulsar_Sijie&Pierre
Kafka on Pulsar:bringing native Kafka protocol support to Pulsar_Sijie&Pierre
 
Scaling customer engagement with apache pulsar
Scaling customer engagement with apache pulsarScaling customer engagement with apache pulsar
Scaling customer engagement with apache pulsar
 
Apache Pulsar First Overview
Apache PulsarFirst OverviewApache PulsarFirst Overview
Apache Pulsar First Overview
 
Apache Kafka - Martin Podval
Apache Kafka - Martin PodvalApache Kafka - Martin Podval
Apache Kafka - Martin Podval
 
Apache Pulsar Seattle - Meetup
Apache Pulsar Seattle - MeetupApache Pulsar Seattle - Meetup
Apache Pulsar Seattle - Meetup
 
Fundamentals and Architecture of Apache Kafka
Fundamentals and Architecture of Apache KafkaFundamentals and Architecture of Apache Kafka
Fundamentals and Architecture of Apache Kafka
 
Tradeoffs in Distributed Systems Design: Is Kafka The Best? (Ben Stopford and...
Tradeoffs in Distributed Systems Design: Is Kafka The Best? (Ben Stopford and...Tradeoffs in Distributed Systems Design: Is Kafka The Best? (Ben Stopford and...
Tradeoffs in Distributed Systems Design: Is Kafka The Best? (Ben Stopford and...
 
Introducing Kafka-on-Pulsar: bring native Kafka protocol support to Apache Pu...
Introducing Kafka-on-Pulsar: bring native Kafka protocol support to Apache Pu...Introducing Kafka-on-Pulsar: bring native Kafka protocol support to Apache Pu...
Introducing Kafka-on-Pulsar: bring native Kafka protocol support to Apache Pu...
 
[March sn meetup] apache pulsar + apache nifi for cloud data lake
[March sn meetup] apache pulsar + apache nifi for cloud data lake[March sn meetup] apache pulsar + apache nifi for cloud data lake
[March sn meetup] apache pulsar + apache nifi for cloud data lake
 
Copy of Kafka-Camus
Copy of Kafka-CamusCopy of Kafka-Camus
Copy of Kafka-Camus
 

Semelhante a Apache Pulsar at Yahoo! Japan

국내 미디어 고객사의 AWS 활용 사례 - POOQ 서비스, 콘텐츠연합플랫폼::조휘열::AWS Summit Seoul 2018
국내 미디어 고객사의 AWS 활용 사례 - POOQ 서비스, 콘텐츠연합플랫폼::조휘열::AWS Summit Seoul 2018국내 미디어 고객사의 AWS 활용 사례 - POOQ 서비스, 콘텐츠연합플랫폼::조휘열::AWS Summit Seoul 2018
국내 미디어 고객사의 AWS 활용 사례 - POOQ 서비스, 콘텐츠연합플랫폼::조휘열::AWS Summit Seoul 2018
Amazon Web Services Korea
 

Semelhante a Apache Pulsar at Yahoo! Japan (20)

20180417 hivemall meetup#4
20180417 hivemall meetup#420180417 hivemall meetup#4
20180417 hivemall meetup#4
 
Peering DB Frontend Translation Project
Peering DB Frontend Translation Project Peering DB Frontend Translation Project
Peering DB Frontend Translation Project
 
Upgrading HDFS to 3.3.0 and deploying RBF in production #LINE_DM
Upgrading HDFS to 3.3.0 and deploying RBF in production #LINE_DMUpgrading HDFS to 3.3.0 and deploying RBF in production #LINE_DM
Upgrading HDFS to 3.3.0 and deploying RBF in production #LINE_DM
 
Updates on webSpoon and other innovations from Hitachi R&D
Updates on webSpoon and other innovations from Hitachi R&DUpdates on webSpoon and other innovations from Hitachi R&D
Updates on webSpoon and other innovations from Hitachi R&D
 
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
 
How YugaByte DB Implements Distributed PostgreSQL
How YugaByte DB Implements Distributed PostgreSQLHow YugaByte DB Implements Distributed PostgreSQL
How YugaByte DB Implements Distributed PostgreSQL
 
Functions and DevOps
Functions and DevOpsFunctions and DevOps
Functions and DevOps
 
What's new in Hadoop Common and HDFS
What's new in Hadoop Common and HDFS What's new in Hadoop Common and HDFS
What's new in Hadoop Common and HDFS
 
How to integrate OpenStack Swift to your "legacy" system
How to integrate OpenStack Swift to your "legacy" systemHow to integrate OpenStack Swift to your "legacy" system
How to integrate OpenStack Swift to your "legacy" system
 
Java and Serverless - A Match Made In Heaven, Part 1
Java and Serverless - A Match Made In Heaven, Part 1Java and Serverless - A Match Made In Heaven, Part 1
Java and Serverless - A Match Made In Heaven, Part 1
 
Dragon: A Distributed Object Storage at Yahoo! JAPAN (WebDB Forum 2017 / E...
   Dragon: A Distributed Object Storage at Yahoo! JAPAN (WebDB Forum 2017 / E...   Dragon: A Distributed Object Storage at Yahoo! JAPAN (WebDB Forum 2017 / E...
Dragon: A Distributed Object Storage at Yahoo! JAPAN (WebDB Forum 2017 / E...
 
국내 미디어 고객사의 AWS 활용 사례 - POOQ 서비스, 콘텐츠연합플랫폼::조휘열::AWS Summit Seoul 2018
국내 미디어 고객사의 AWS 활용 사례 - POOQ 서비스, 콘텐츠연합플랫폼::조휘열::AWS Summit Seoul 2018국내 미디어 고객사의 AWS 활용 사례 - POOQ 서비스, 콘텐츠연합플랫폼::조휘열::AWS Summit Seoul 2018
국내 미디어 고객사의 AWS 활용 사례 - POOQ 서비스, 콘텐츠연합플랫폼::조휘열::AWS Summit Seoul 2018
 
H2O - the optimized HTTP server
H2O - the optimized HTTP serverH2O - the optimized HTTP server
H2O - the optimized HTTP server
 
Accelerate Your C/C++ Applications with Amazon EC2 F1 Instances (CMP405) - AW...
Accelerate Your C/C++ Applications with Amazon EC2 F1 Instances (CMP405) - AW...Accelerate Your C/C++ Applications with Amazon EC2 F1 Instances (CMP405) - AW...
Accelerate Your C/C++ Applications with Amazon EC2 F1 Instances (CMP405) - AW...
 
Java Library for High Speed Streaming Data
Java Library for High Speed Streaming Data Java Library for High Speed Streaming Data
Java Library for High Speed Streaming Data
 
Diagnose Your Microservices
Diagnose Your MicroservicesDiagnose Your Microservices
Diagnose Your Microservices
 
Preparations for koha implementation
Preparations for koha implementationPreparations for koha implementation
Preparations for koha implementation
 
YARN: a resource manager for analytic platform
YARN: a resource manager for analytic platformYARN: a resource manager for analytic platform
YARN: a resource manager for analytic platform
 
Kubernetes is hard! Lessons learned taking our apps to Kubernetes - Eldad Ass...
Kubernetes is hard! Lessons learned taking our apps to Kubernetes - Eldad Ass...Kubernetes is hard! Lessons learned taking our apps to Kubernetes - Eldad Ass...
Kubernetes is hard! Lessons learned taking our apps to Kubernetes - Eldad Ass...
 
Replication Whats New in Mysql 8
Replication Whats New in Mysql 8Replication Whats New in Mysql 8
Replication Whats New in Mysql 8
 

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

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

Último

Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
gajnagarg
 
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
ydyuyu
 
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi EscortsRussian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Monica Sydney
 
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
pxcywzqs
 
PowerDirector Explination Process...pptx
PowerDirector Explination Process...pptxPowerDirector Explination Process...pptx
PowerDirector Explination Process...pptx
galaxypingy
 
75539-Cyber Security Challenges PPT.pptx
75539-Cyber Security Challenges PPT.pptx75539-Cyber Security Challenges PPT.pptx
75539-Cyber Security Challenges PPT.pptx
Asmae Rabhi
 
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdfpdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
JOHNBEBONYAP1
 
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
ayvbos
 
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
ydyuyu
 

Último (20)

Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
 
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
 
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi EscortsRussian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
 
Trump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts SweatshirtTrump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts Sweatshirt
 
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
 
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
 
Real Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtReal Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirt
 
Microsoft Azure Arc Customer Deck Microsoft
Microsoft Azure Arc Customer Deck MicrosoftMicrosoft Azure Arc Customer Deck Microsoft
Microsoft Azure Arc Customer Deck Microsoft
 
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
 
PowerDirector Explination Process...pptx
PowerDirector Explination Process...pptxPowerDirector Explination Process...pptx
PowerDirector Explination Process...pptx
 
75539-Cyber Security Challenges PPT.pptx
75539-Cyber Security Challenges PPT.pptx75539-Cyber Security Challenges PPT.pptx
75539-Cyber Security Challenges PPT.pptx
 
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime NagercoilNagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
 
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdfpdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
 
"Boost Your Digital Presence: Partner with a Leading SEO Agency"
"Boost Your Digital Presence: Partner with a Leading SEO Agency""Boost Your Digital Presence: Partner with a Leading SEO Agency"
"Boost Your Digital Presence: Partner with a Leading SEO Agency"
 
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
 
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
 
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
 
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
 
Best SEO Services Company in Dallas | Best SEO Agency Dallas
Best SEO Services Company in Dallas | Best SEO Agency DallasBest SEO Services Company in Dallas | Best SEO Agency Dallas
Best SEO Services Company in Dallas | Best SEO Agency Dallas
 
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrStory Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
 

Apache Pulsar at Yahoo! Japan

  • 1. Apache Pulsar at Yahoo! JAPAN Yahoo Japan Corporation Nozomi Kurihara Aug., 17th, 2019
  • 2. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 2 Who am I? Nozomi Kurihara • Software engineer at Yahoo! JAPAN (April 2012 ~) • Working on internal messaging platform using Apache Pulsar • Committer of Apache Pulsar • (Hobby: Board / video games!)
  • 3. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. Agenda 3 1. What is Apache Pulsar? 2. Why did Yahoo! JAPAN choose Apache Pulsar? 3. How does Yahoo! JAPAN use Apache Pulsar? 4. Future plans
  • 4. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 4 What is Apache Pulsar?
  • 5. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 5 Apache Pulsar Flexible pub-sub system backed by durable log storage ▪ History: › 2014 Development started at Yahoo! Inc. › 2015 Available in production in Yahoo! Inc. › Sep. 2016 Open-sourced (Apache License 2.0) › June 2017 Moved to Apache Incubator Project › Sep. 2018 Graduated as Top Level Project! ▪ Users: › Verizon media (Yahoo! Inc.) › Comcast › The Weather Channel › Mercado Libre › Streamlio › Yahoo! JAPAN etc. ▪ Competitors: › Apache Kafka › RabbitMQ › Apache ActiveMQ › Apache RocketMQ etc.
  • 6. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 6 Pub-Sub messaging Message transmission from one system to another via Topic ▪ Producers publish messages to Topics ▪ Consumers receive only messages from Topics to which they subscribe ▪ Decoupled (no need to know each other) → asynchronous, scalable, resilient TopicProducer Consumer 1 Consumer 2 Consumer 3 Pub-Sub system message (log, notification, etc.) Publish Subscribe
  • 7. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 7 Architecture Producer Consumer Broker 1 Broker 2 Broker 3 Bookie 1 Local ZK Bookie 2 Bookie 3 Pulsar Cluster Configuration Store (Global ZK) ■3 components: ‣ Broker ‣ Bookie ‣ ZooKeeper
  • 8. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 8 Architecture - Broker ■Broker ‣ Serving node for clients’ requests ‣ No data locality (stateless) Producer Consumer Broker 1 Broker 2 Broker 3 Bookie 1 Local ZK Bookie 2 Bookie 3 Pulsar Cluster Configuration Store (Global ZK)
  • 9. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 9 Architecture - Bookie Apache BookKeeper: distributed write-ahead log system Producer Consumer Broker 1 Broker 2 Broker 3 Bookie 1 Local ZK Bookie 2 Bookie 3 Pulsar Cluster Configuration Store (Global ZK) Copyright © 2016 - 2018 The Apache Software Foundation,
 licensed under the Apache License, version 2.0. ■Bookie (Apache BookKeeper) ‣ Storage node for messages ‣ Durable, Scalable, Consistent, Fault-tolerant, Low- latency
  • 10. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 10 Architecture - ZooKeeper Copyright © 2016 - 2018 The Apache Software Foundation,
 licensed under the Apache License, version 2.0. Producer Consumer Broker 1 Broker 2 Broker 3 Bookie 1 Local ZK Bookie 2 Bookie 3 Pulsar Cluster Configuration Store (Global ZK) ■Apache ZooKeeper ‣ Store metadata and configuration ‣ Local ZK: within local cluster ‣ Configuration Store: across all clusters
  • 11. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 11 Why did Yahoo! JAPAN choose Apache Pulsar?
  • 12. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 12 Yahoo! JAPAN https://www.yahoo.co.jp/
  • 13. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 13 Yahoo! JAPAN – 3 numbers 100+ 150,000+ 93,000,000+ image: aflo Unique Browsers (avg in 2018/7-9) servers (real) services
  • 14. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 14 Why did Yahoo! JAPAN choose Pulsar? ▪ Large number of customers ▪ Large number of services ▪ Sensitive/mission-critical messages ▪ Multiple data centers → High performance & scalability → Multi-tenancy → Durability → Geo-replication Pulsar meets all these requirements!
  • 15. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 15 Scalability Just adding Brokers/Bookies increases serving/storage capacity! (no special operation e.g. data rebalancing is required) Producer Consumer Broker 1 Broker 2 Broker 3 Bookie 1 Local ZK Bookie 2 Bookie 3 Pulsar Cluster Configuration Store (Global ZK) Broker X for more serving capacity for more storage capacity Bookie Y
  • 16. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 16 Multi-tenancy Multiple services can share one Pulsar system ▪ Just use Pulsar as a “Tenant” → no need to maintain own messaging system ▪ Authentication/Authorization mechanism protects messages from interception ProducerService A Consumer Producer Consumer Producer Consumer Producer Consumer Topic A Topic B Topic C Topic D Service B Authentication/Authorization blocks unauthorized access Service C Service D Pulsar System
  • 17. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 17 Geo-replication Producer Topic Pulsar can replicate messages to another cluster 1. Producers only have to publish messages to Pulsar in the same data center 2. Pulsar asynchronously replicates messages to another cluster 3. Consumers can receive messages from the same data center Pulsar Cluster A Consumer Consumer Consumer Data center A Topic Consumer Consumer Consumer Data center B Geo-replication Pulsar Cluster B
  • 18. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 18 How does Yahoo! JAPAN use Apache Pulsar?
  • 19. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. East Broker Bookie ZK WebSocket Proxy 19 System architecture in Yahoo! JAPAN Service B (Java) Service A (Node.js) West Broker Bookie ZK WebSocket Proxy Geo-replication Service C (C++) Prometheus + Grafana Collect metrics + Visualize For each cluster: ・20 WSs ・15 Brokers ・10 Bookies ・5 ZKs
  • 20. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 20 Users More and more services start to use Pulsar! • 210+ tenants • 4000+ topics • ~100K publishes/s • ~180K subscribes/s Typical use cases: • Notification • Job queueing • Log pipeline
  • 21. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 21 Case 1 – Notification of contents update ▪ Various contents files pushed from partner companies to Yahoo! JAPAN ▪ Notification sent to topic when contents are updated ▪ Once services receive notification, they then fetch contents from file server Producer Consumer Topic Service A Pulsar ①send notification ③fetch content files Consumer Service B Consumer Service CPartner Companies weather, map, news etc. FTP server ftpd ②receive notification
  • 22. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 22 Case 2 – Job queuing in mail service ▪ Indexing of mail can be heavy → you can execute it asynchronously ▪ Producers register jobs to Pulsar ▪ Consumers take jobs from Pulsar at their own pace Producer Consumer Producer Topic Handler for indexing Mail BE server Mail BE server Pulsar request Register a job Re-register if it fails Take and process a job
  • 23. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 23 Case 3 – Log pipeline ▪ Publisher: computing platforms on which YJ applications are running ▪ Subscriber: data platforms (monitoring, analyzing, storing etc.) Pulsar app2 app3 … PaaS container1 … CaaS container2 app1 … Monitoring Analyzing Storing PaaS_logs CaaS_logs Computing PFs Data PFs … logs Service developers deploy apps check logs
  • 24. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 24 Case 3 – Log pipeline Pulsar app2 app3 … PaaS container1 … CaaS container2 app1 … Monitoring Analyzing Storing PaaS_logs CaaS_logs Computing PFs Data PFs … Logs can have destinations → Consumers need to filter them To: Monitoring To: Analyzing Filtering discard Filtering Filtering
  • 25. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 25 Case 3‘ – Log pipeline + filtering (Future plan) ▪ Filtering on Pulsar side ▪ Pulsar Function is helpful to filter! Pulsarapp2 app3 … PaaS container1 … CaaS container2 app1 … Pulsar Functions … Monitoring Analyzing Storing PaaS_logs CaaS_logs For Monitoring For Analyzing For Storing Computing PFs Data PFs Filtering
  • 26. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 26 Migration from Kafka ▪ We have an internal FaaS system using Apache OpenWhisk ▪ Problem: FaaS team had to maintain Apache Kafka ▪ Solution: migrate from Kafka to our internal Pulsar ▪ Pulsar Kafka Wrapper needs only a few configuration changes (.pom, topic name, etc.)  <dependency> -  <groupId>org.apache.kafka</groupId> -  <artifactId>kakfa-clients</artifactId> -  <version>0.10.2.1</version> +  <groupId>org.apache.pulsar</groupId> +  <artifactId>pulsar-client-kafka</artifactId> +  <version>2.4.0</version>  </dependency>
  • 27. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 27 Future plans
  • 28. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 28 Node.js Client Node.js users can easily use Pulsar! Implementation: • https://github.com/apache/pulsar-client-node • Based on C++ Client Done: ✅ basic functionalities(producer, consumer, reader) ✅ test codes ✅ performance scripts Todo: • publish to npm registry • Fix release flow • support more features (multi-topic consume, unack etc.)
  • 29. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 29 Admin WebUI (under development) Administrators can easily and intuitively manage Pulsar topics! Implementation • https://gist.github.com/massakam/8e9bd3ca62874f18cf3ce3ecb6db1473 • Vue.js + Express Done: ✅ basic pages (tenants, namespaces, topics etc.) Todo: • open repository • advanced commands (unload, skip-messages etc.) • authentication to Broker
  • 30. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 30
  • 31. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 31
  • 32. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 32
  • 33. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 33
  • 34. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 34 Looking for the best naming! pulsar-ui? pulsar-console? pulsar-manager?
  • 35. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 35 Conclusion
  • 36. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. Conclusion 36 ▪ Apache Pulsar is fast, durable, scalable, multi-tenant messaging platform, has useful built-in features like geo replication and Pulsar Functions etc. ▪ Yahoo! JAPAN uses it as a centralized platform for various services ▪ Node.js Client is already open-sourced and Admin UI will come soon Welcoming your any contributions, because it’s an OPEN-SOURCE!