AWS SNS

Configure real-time event delivery to AWS SNS topics for event distribution

The AWS SNS destination enables you to publish your event data to Amazon Simple Notification Service (SNS) topics in real-time. This allows you to fan out events to multiple subscribers, including SQS queues, Lambda functions, and HTTP endpoints.

Configuration

To set up the AWS SNS destination:

  1. Navigate to the Destinations section in your account
  2. Click "Add Destination" and select "AWS SNS"
  3. Provide the following information:
    • AWS Region
    • SNS Topic ARN

Event Format

Events published to your SNS topic will be in the following format:

{
  "event": {
    "event": "Order Completed",
    "event_properties": {
      "order_id": "12345",
      "total": 99.99
    },
    ...etc
  },
  "visitor": {
    "visitor_id": "visitor_123",
    "first_seen_at": "2024-01-01T00:00:00Z",
    "email": "example@example.com",
    ...etc
  },
  "user": {
    "external_id": "user_456",
    "email": "example@example.com",
    ...etc
  }
}

Delivery Guarantees

Events are delivered with at least once semantics. This means that each event may be delivered one or more times to your SNS topic. Duplicate events can occur due to network retries, system failures, or other transient conditions.

To ensure idempotent processing of events, your consumers should use visitor.visitor_id and/or event.distinct_id to identify and deduplicate events. These identifiers remain consistent across duplicate deliveries of the same event, allowing you to safely process events multiple times without side effects.

Best Practices

  • Ensure your SNS topic has appropriate access policies (you will need to contact a member of the Ours Privacy team for this)
  • Consider using message attributes for filtering

How is this guide?

AWS SNS Destination - Real-time Event Publishing