Skip to main content

Installing

The SDK is available on PyPI, so you can install it using pip:

Basic Usage

Importing

The main components are available directly from the sailhouse package.

Initialising the Client

The package provides a SailhouseClient class which contains all methods for interacting with the Sailhouse platform. After generating a token, you can create a client instance:
The client can be customised with optional parameters:
  • timeout: Request timeout in seconds (default: 5.0)

Sending an event

Use the publish() method to send data to a topic. The method is async, so you’ll need to use it with await:
The data argument must be a dictionary that can be serialized to JSON. The method also accepts optional parameters:
  • scheduled_time: A datetime object for scheduled message delivery
  • metadata: Additional metadata as a dictionary

Receiving events from a pull subscription

The pull() method allows you to fetch, and lock for procesing, a single event from a subscription:
The get_events() method accepts several optional parameters:
  • limit: Maximum number of events to retrieve
  • offset: Number of events to skip
  • time_window: Time window for event retrieval (e.g., “1h”, “24h”)

Subscribing to events

The SDK provides a convenient way to continuously process events using the subscribe() method:
The subscribe() method accepts several parameters:
  • handler: Callback function to process each event
  • polling_interval: Time between polling attempts in seconds (default: 5.0)
  • on_error: Optional error handler function
  • exit_on_error: Whether to exit on error (default: False)

Admin Operations

The admin client provides methods for managing subscriptions programmatically.

Registering Push Subscriptions

Rate Limiting and Deduplication

  • Rate Limit: Controls delivery frequency using formats like “100/h” (100 per hour), “10/m” (10 per minute)
  • Deduplication: Prevents duplicate deliveries within a time window using formats like “5m” (5 minutes), “1h” (1 hour)