Outpost Concepts

Models

  • Tenants: A tenant represents a user/team/organization in your product.
  • Destination Types: The type of destination where events will be delivered. For example, webhook, Hookdeck, or AWS SQS.
  • Destinations: A destination is a specific instance of a destination type. For example, a webhook destination with a specific URL.
  • Topics: A topic is a way to categorize events and is a common concept found in Pub/Sub messaging. For example, a user.created event might be categorized under the user topic.
  • Events: An event is a piece of data that represents an action that occurred in your system. For example, a user signed up or a payment was processed.
  • Delivery Attempts: A delivery attempt represents the result of an attempt to deliver an event to a destination.

Architecture

Outpost consists of 3 services that can either be run as a single deployment or as separate deployments.

  • API Service: captures events and exposes the necessary APIs to configure tenants and destinations.
  • Delivery Service: is responsible for delivering events to tenants' destinations and contains adapters for each destination type. It must be configured to operate over one of the supported message queues, such as SQS and Pub/Sub.
  • Log Service: enables storing and retrieving events, their status, and their responses.

Running Outpost as individual services is optional. You can also run Outpost as a single binary/process if horizontal scaling of the individual services is not needed for your event volume.

Outpost Architecture

Runtime Requirements

API Service & Delivery Service

  • Redis 6.0+ or wire-compatible alternative (RBD or AOF strongly recommended)
  • One of the supported message queues:

Log Service

Required for log storage.

Tenant Destination Types

Event destination types belonging to Outpost tenants where events are delivered.

If there is an event destination type that you would like to see supported, open a feature request.