Every enterprise application creates data, including log messages, metrics, user activity, and outgoing messages. Learning how to move these items is almost as important as the data itself. If you're an application architect, developer, or production engineer new to Apache Pulsar, this practical guide shows you how to use this open source event streaming platform to handle real-time data feeds.

Jowanza Joseph, staff software engineer at Finicity, explains how to deploy production Pulsar clusters, write reliable event streaming applications, and build scalable real-time data pipelines with this platform. Through detailed examples, you'll learn Pulsar's design principles, reliability guarantees, key APIs, and architecture details, including the replication protocol, the load manager, and the storage layer.

This book helps you:

  • Understand how event streaming fits in the big data ecosystem
  • Explore Pulsar producers, consumers, and readers for writing and reading events
  • Build scalable data pipelines by connecting Pulsar with external systems
  • Simplify event-streaming application building with Pulsar Functions
  • Manage Pulsar to perform monitoring, tuning, and maintenance tasks
  • Use Pulsar's operational measurements to secure a production cluster
  • Process event streams using Flink and query event streams using Presto

Table of Contents

  1. 1. The Value of Real-Time Messaging
    1. Data In Motion
    2. Resource Efficiency
    3. Interesting Applications
    4. Banking
    5. Medical
    6. Security
    7. Internet of Things
  2. 2. Event Streams and Event Brokers
    1. Publish/Subscribe
    2. Queue
    3. Failure Modes
    4. Push vs. Poll
    5. The Need for Pulsar
    6. Unification
    7. Modularity
    8. Performance
  3. 3. Pulsar
    1. Pulsar Design Principles
    2. Multi-Tenancy
    3. Geo-Replication
    4. Performance
    5. Modularity
    6. Pulsar Ecosystem
    7. Pulsar Functions
    8. Pulsar IO
    9. Pulsar SQL
    10. Pulsar Success Stories
    11. Yahoo! Japan
    12. Splunk
    13. Iterable