Skip to main content

Targets (Legacy: Destinations)

Status: DEPRECATED TERMINOLOGY — This page uses legacy terminology. The current canonical term is Target. See Zen Mesh Concepts — Target for the current definition and the Targets API for programmatic configuration.

The product model has moved from "Destination" to Target as the canonical term. A destination is now called a target in the UI, API, and documentation. The functionality described on this page is still available under the Targets surface.

What Is a Target?

A target is a URL in your cluster where Zen Mesh delivers webhook events. Each target is associated with a cluster and optionally an adapter.

Creating a Target

  1. Navigate to Destinations in the dashboard
  2. Click Add Target
  3. Fill in:
    • Name: A descriptive name (e.g., stripe-to-payment-service)
    • URL: The internal URL of your service (e.g., http://payment-svc:8080/webhooks)
    • Cluster: Select the cluster where this service runs
    • Adapter (optional): Transform events for a specific service
  4. Click Save

Ingestion URL

After creating a destination, Zen Mesh provides an ingestion URL:

https://ingest.zen-mesh.io/hooks/<hook-id>

Configure your webhook source (Stripe, GitHub, etc.) to send events to this URL.

Environment Scoping

Destinations can be scoped to environments (e.g., production, staging). This lets you route the same webhook source to different clusters based on the environment:

  • production environment → delivers to production cluster
  • staging environment → delivers to staging cluster

Health Checks

Zen Mesh monitors destination health:

  • Healthy: Delivery succeeding within SLA
  • Degraded: High latency or intermittent failures
  • Unhealthy: Consecutive delivery failures

Unhealthy destinations trigger automatic backoff and retry with exponential backoff.

Delivery Guarantees

GuaranteeDescription
At-least-onceEvents are retried until acknowledged or DLQ'd
OrderedEvents from the same source are delivered in order
IdempotentDuplicate events are detected via HMAC signatures

Dead Letter Queue

Events that fail delivery after all retries are moved to a Dead Letter Queue (DLQ). You can inspect and replay DLQ events from the dashboard.

Configuration Reference

SettingDescriptionDefault
NameHuman-readable identifier for the destinationRequired
URLTarget service URL where events are deliveredRequired
ClusterCluster where the destination service runsRequired
AdapterTransform events for provider-specific payloadsOptional
EnvironmentEnvironment scoping (production, staging, etc.)Optional
Retry PolicyMax retries, backoff interval, timeoutInherited from delivery flow

Example: Multiple Destinations

Route Stripe charge events to a payment service and an analytics pipeline:

destinations:
- name: payment-processor
url: http://payment-svc:8080/webhooks
cluster: prod-us-east
- name: analytics-pipeline
url: http://analytics:9090/events
cluster: prod-us-east