Course Setup
Use Case
Messaging Basics
Consumer Subscription Types
API Internals for Message Integrity and Scaling
1 of 3

Apache Pulsar Architecture

Let’s learn about the Apache Pulsar architecture before discussing how we can use Apache Pulsar to meet our business requirements.

A working Apache Pulsar cluster consists of three components:

Brokers (Apache Pulsar):

  • Handle message routing and connections
  • Stateless (with caches)
  • Automatic load balancing

Bookies (Apache BookKeeper):

  • Store messages and cursors

MetaData Storage (Apache ZooKeeper, etcd, or RocksDB):

  • Stores metadata for both Apache Pulsar and Apache BookKeeper

To further improve the scalability of Apache Pulsar, Oxia has been introduced as a Metadata Store. Read the following blog post for further information:
https://streamnative.io/blog/introducing-oxia-scalable-metadata-and-coordination

Hierarchy of an Apache Pulsar instance:

  • Instance: group of clusters that act as a single unit
  • Cluster: a set of Apache Pulsar brokers, Apache BookKeeper quorum, and an ensemble of Apache BookKeeper bookies
  • Tenant: administrative unit for allocating capacity and enforcing an authentication/authorization scheme
  • Namespace: grouping mechanism for related topics
  • Topic: named channel for transmitting messages from producers to consumers

During the course you will have access to write messages to and read messages from topics, as well as make configuration changes to one tenant.  Your tenant has one namespace called “developer”.  You will create many topics in the developer namespace to create your end-to-end e-commerce application.