Apache Pulsar Fundamentals
Apache Pulsar is a distributed messaging and event-streaming platform that separates serving from storage. It supports multi-tenancy, geo-replication, and both queuing and streaming semantics in a single system, with tiered storage for cost-effective retention.
itDistributed systems, messaging, and integration | OpenSkills.info
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Don't Panic
Don't Panic — Apache Pulsar Fundamentals
Apache Pulsar is a messaging and streaming platform that lets one application put a message somewhere reliable while other applications collect it on their own schedules. It is not a magic mailbox. It is a deliberately large arrangement of brokers, storage nodes, policies, and cursors, because a small arrangement tends to become large the moment somebody asks for retention, replication, and three consumer groups.
The basic transaction is pleasantly ordinary: a producer writes to a topic, and a consumer reads through a subscription. The important wrinkle is that a subscription has its own durable position, called a cursor. Two subscriptions can read the same topic without racing each other. One may process orders while another feeds analytics. This is the part that prevents the usual queue argument from escaping its box and becoming an architectural meeting.
Pulsar also gives every persistent topic an address shaped like tenant, namespace, and topic. The tenant is an administrative boundary. The namespace groups topics under shared policies. This means names carry authority and operating rules, not decorative folder structure. It is handy, and it is also why choosing names after the system is busy has all the charm of changing road signs during rush hour.
The other idea worth keeping is the split between brokers and BookKeeper. Brokers accept client traffic, own topics, and dispatch messages. BookKeeper stores the durable ledgers. As a result, serving pressure and storage pressure can grow separately, and topic ownership can move without moving all the data. The components remain separate failure domains, because reality enjoys options.
Acknowledgments advance each subscription cursor. Messages not acknowledged become backlog; failed processing can trigger redelivery. That makes duplicate delivery a normal design condition, not an accusation. Retention, expiry, and tiered storage answer different questions about how long messages remain available, so they should not be configured as if they were three enthusiastic names for the same switch.
Read the intro for the full architecture and its limits. Use the slides when you need the relationships at a glance. Keep the cheatsheet nearby for subscription behavior, ordering boundaries, and operational signals. The exercise turns the independent-cursor model into something visible in a local standalone run. After that, the reference links are the right place for exact commands, policies, and production details.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://pulsar.apache.org/
Supports
- Apache Pulsar project identity and official documentation entry point
- https://pulsar.apache.org/download/
Supports
- Apache Pulsar 4.2.3 as the current stable release on the verification date
- Official binary and source distribution entry points
- https://pulsar.apache.org/docs/4.2.x/concepts-overview/
Supports
- Pulsar as a multi-tenant server-to-server messaging platform
- BookKeeper-backed persistent delivery and four subscription types
- Geo-replication, Pulsar Functions, Pulsar IO, tiered storage, transactions, and security capabilities
- https://pulsar.apache.org/docs/4.2.x/getting-started-standalone/
Supports
- Standalone mode for local development and testing
- Creating a persistent topic and exchanging messages with official command-line tools
- The public/default development namespace
- https://pulsar.apache.org/docs/4.2.x/concepts-messaging/
Supports
- Producer, topic, consumer, subscription, and acknowledgment relationships
- Message metadata, payload bytes, keys, schema versions, and message identifiers
- Individual, cumulative, and negative acknowledgments plus redelivery behavior
- Exclusive, Failover, Shared, and Key_Shared subscription behavior
- Independent subscriptions and shared consumer-group delivery
- Partitioned topics, routing, throughput, and ordering boundaries
- Backlog, retention, expiry, deduplication, compaction, and delayed delivery
- https://pulsar.apache.org/docs/4.2.x/concepts-architecture-overview/
Supports
- Cluster composition with brokers, BookKeeper bookies, and a metadata store
- Broker responsibilities for lookup, message traffic, dispatch, cache, and geo-replication
- BookKeeper ledgers, managed ledgers, durable message data, and persistent cursors
- Separation of broker ownership from durable storage
- Optional proxy and service discovery behavior
- https://pulsar.apache.org/docs/4.2.x/concepts-multi-tenancy/
Supports
- Tenant as an administrative and capacity boundary
- Namespace as a logical topic group and policy boundary
- Persistent topic name structure with tenant, namespace, and topic
- https://pulsar.apache.org/docs/4.2.x/schema-overview/
Supports
- Message payloads stored as bytes and translated through schemas
- Topic-level schema registry, versions, and compatibility checks
- Producer and consumer rejection when schemas are incompatible
- https://pulsar.apache.org/docs/4.2.x/security-overview/
Supports
- No encryption, authentication, or authorization enabled by default
- Authentication providers assigning role tokens
- Authorization controlling production, consumption, and administration
- Transport and end-to-end encryption as separate controls
- https://pulsar.apache.org/docs/4.2.x/deploy-monitoring/
Supports
- Broker statistics and namespace-aggregated monitoring metrics
- Prometheus endpoints for brokers and BookKeeper
- Function and connector worker metrics
- Metric cardinality guidance and OpenTelemetry status
- https://pulsar.apache.org/docs/4.2.x/administration-geo/
Supports
- Geo-replication configuration at namespace and topic level
- Local application access and remote message replication
- Per-producer ordering across replicated clusters
- Replication rates, backlogs, policy propagation, and deletion behavior
- Geo-replication for availability and disaster recovery, not backup
- https://pulsar.apache.org/docs/4.2.x/concepts-tiered-storage/
Supports
- Offloading sealed BookKeeper ledgers to external storage
- Transparent consumer access to offloaded backlog
- Storage-cost and older-read latency tradeoffs
- https://pulsar.apache.org/docs/4.2.x/txn-what/
Supports
- Atomic writes and acknowledgments across topics and partitions
- Commit and abort semantics for transactional messages
- Exactly-once consume, process, and produce operations under transaction semantics
- https://pulsar.apache.org/docs/4.2.x/functions-overview/
Supports
- Pulsar Functions as consume, process, and publish computations
- Functions for focused message transformations
- Java, Python, and Go function support
- https://pulsar.apache.org/docs/4.2.x/io-overview/
Supports
- Source connectors moving external data into Pulsar
- Sink connectors moving Pulsar data into external systems
- Connector processing guarantees depending on Pulsar and connector behavior
- https://pulsar.apache.org/docs/4.2.x/reference-landing/
Supports
- Official reference path for application programming interfaces, command-line tools, configuration, metrics, and terminology
- https://pulsar.apache.org/release-notes/
Supports
- Dated Apache Pulsar release history from 2.0 through 4.x
- https://pulsar.apache.org/release-notes/legacy/
Supports
- Apache Pulsar 2.1.0-incubating release, Pulsar IO, tiered storage, stateful functions, and schema support
- https://docs.streamnative.io/cloud/overview/cloud-overview
Supports
- StreamNative Cloud Pulsar Service offering
- https://docs.datastax.com/en/streaming/index.html
Supports
- DataStax Streaming managed Apache Pulsar offering and connector support
- https://www.tencentcloud.com/document/product/1179
Supports
- Tencent Cloud TDMQ for Pulsar managed service
- https://www.confluent.io/confluent-cloud/
Supports
- Confluent Cloud managed Kafka service
- https://apachecon.com/acna2022/slides/03_Hotari_Lari_Performance_tuning_Pulsar.pdf
Supports
- Operational backlog diagnosis and performance tuning observations for Apache Pulsar on Kubernetes
