Hookway

Fifo sqs — destinations/fifo-sqs

# Publish authenticated JSON webhooks to an SQS FIFO queue.
# Demonstrates explicit ordering/deduplication IDs, JSON wire bodies, bounded
# retries and route response policies. Use an isolated broker and test secret.
# Real integration fields, URLs and credentials belong in private config.
server:
  addr: ":8080"
  max_body_bytes: 1048576
  publish_timeout: 5s

destinations:
  broker:
    type: sqs
    on_existing_conflict: warn
    sqs:
      region: us-east-1
      # endpoint: http://localhost:4566

flows:
  sample:
    responses:
      published:
        status: 200
        body: '{"status":"ok"}'
        headers: {Content-Type: application/json}
      auth_error:
        status: 400
        body: '{"error":"invalid credentials"}'
        headers: {Content-Type: application/json}
      # Omitted outcomes retain Hookway defaults. Confirm private helper
      # failure contracts before adding body_error or publish_error policies.
    nodes:
      - {id: in, type: http_trigger, path: /webhooks/sample, methods: [POST]}
      - {id: body, type: read_body, max_bytes: 1048576}
      - id: auth
        type: auth
        scheme: exact
        secret: "${SAMPLE_WEBHOOK_SECRET}"
        signature_header: Authorization
        remove_prefix: "Api-Key "
      - {id: env, type: envelope, body_format: json}
      - id: out
        type: publish
        destination: broker
        target: synthetic-events.fifo
        create: true
        wire_body: json_js
        fifo:
          group_id: {source: json_js_sha256, hash_length: 10}
          deduplication_id: {source: json_js_sha256, hash_length: 10}
        retry: {max_attempts: 3, initial_backoff: 100ms, max_backoff: 200ms}
    edges: [in>body, body>auth, auth>env, env>out]