Events & messaging

Events

One canonical event substrate, transactional outbox-backed, exactly-once materialization.

This page is the documentation contract for the Events surface in Vadyl's final form. It is not a marketing summary: it names the authorities, projections, runtime behavior, examples, limits, errors, and observability expectations that every product implementation must honor.

What this surface owns

  • Events owns the canonical product-facing contract described here; provider-specific machinery stays behind capability declarations.
  • One canonical event substrate, transactional outbox-backed, exactly-once materialization.
  • The final docs treat this as complete: REST, GraphQL, gRPC, SDK, CLI, MCP, dashboard, observability, limits, errors, and explainability are all covered as projections of one authority.

Canonical authorities

AuthorityRole
IPlatformEventOutboxCanonical owner for Events; downstream surfaces derive from this rather than inventing their own truth.
SubscriptionFilterAstCanonical owner for Events; downstream surfaces derive from this rather than inventing their own truth.
WebhookEndpointCanonical owner for Events; downstream surfaces derive from this rather than inventing their own truth.
RealtimeSubscriptionCanonical owner for Events; downstream surfaces derive from this rather than inventing their own truth.

Projection coverage

Surface kindsEventVocabularySurface, SubscriptionSurface, WebhookSurface, RealtimeSurface
Projection facetsEvents, Webhooks, ExposureBindings
ProtocolsRest, WebSocket, Sse, Webhook, Event, Sdk, Cli, Mcp
Public projectionsevents APIs; realtime WebSocket/SSE; webhooks; GraphQL subscriptions; SDK event streams; CLI events

Project-scope parity

    Publish, install, consume

      Consumption evidence

        Runtime behavior

        • transactional outbox
        • event router
        • webhook dispatcher
        • realtime fanout
        • ordered stream helpers

        REST and controller surface

        Code-backed controllers are listed here so the docs menu does not hide the real endpoint surface. The complete route-by-route table remains in the REST controller atlas.

        ControllerBase routeEndpoint countExamples
        Webhook/api/webhooks and /api/Webhook14
        GET endpoints
        GET endpoints/{id}
        POST endpoints
        PUT endpoints/{id}
        OperationalResource/api/OperationalResource6
        POST streams/{providerName}/{streamName}/append
        POST streams/{providerName}/{streamName}/consume
        POST streams/{streamName}/groups/{consumerGroup}/ack
        POST streams/{providerName}/{streamName}/nack

        SDK and CLI surface

        ProjectionNamespace / groupCoverage
        SDKeventsemit, list, get, tail, replay, consumer offsets, ordered stream helpers. Rendered methods: 2.
        SDKwebhooksendpoint and receiver management, delivery replay, signature helpers, diagnostics. Rendered methods: 6.
        SDKrealtimeentity and channel subscriptions over WebSocket or SSE. Rendered methods: 4.
        CLIvadyl eventsTail / replay / search canonical event log. Rendered commands: 3.
        CLIvadyl webhookOutbound endpoints, inbound receivers, deliveries, replay, secret rotation. Rendered commands: 10.

        Input request and output

        GET /api/webhooks and /api/Webhook/endpoints HTTP/1.1
        Host: api.vadyl.app
        Authorization: Bearer $VADYL_TOKEN
        X-Vadyl-Tenant: acme
        X-Vadyl-Project: billing
        Content-Type: application/json
        
        {
          "surface": "events",
          "publicationVersion": 412,
          "explain": true
        }

        Limits and quotas

          Error model

          ErrorMeaning

          Observability and explainability

            Related references