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.
Runtime Requirements
API Service & Delivery Service
- Redis 6.0+ or wire-compatible alternative (RBD or AOF strongly recommended)
- One of the supported message queues:
- AWS SQS
- RabbitMQ
- GCP Pub/Sub
- Azure ServiceBus (planned)
Log Service
Required for log storage.
- PostgreSQL
- ClickHouse (planned)
Tenant Destination Types
Event destination types belonging to Outpost tenants where events are delivered.
- Webhooks
- RabbitMQ
- AWS SQS
- Hookdeck Event Gateway
- Amazon EventBridge (planned)
- Azure ServiceBus (planned)
- GCP Pub/Sub (planned)
- Kafka (planned)
If there is an event destination type that you would like to see supported, open a feature request.