Skip to content

Subscription

<!-- generated:meta -->

Grupdata
Planeresource
Spec structSubscriptionSpec

<!-- /generated:meta -->

Kapan Memakai

kind: Subscription adalah reaksi lintas-module terhadap event resource lain — tanpa mengubah publisher.

Kapan memakai Subscription:

  • Module lain bereaksi ke event resource milik module ini (mis. billing.invoiceon_submit)
  • Reliable event delivery (durable publisher + durable subscriber)

Kapan TIDAK pakai Subscription:

  • Reaksi in-process sesama module → cukup event on_* di Entity itu sendiri
  • Jembatan reaktif request/response antar module → kind: Integrator

Sumber kontrak: docs/spec/backend/01-core-basic.md §7.

Contoh Manifest

yaml
apiVersion: formspec.dev/v1
kind: Subscription
metadata:
  name: on-invoice-submitted
  module: general-ledger
spec:
  events:
    - resource: billing.invoice
      action: submit
  handler:
    type: native
    ref: "GLHandler.OnInvoiceSubmitted"

Atribut

<!-- generated:attributes -->

AtributTipeWajibContohDeskripsi
events[]stringbilling.invoice.on_submit
handlerImplDecl
storestringredis
durablestringTier 2: durability mode
retryRetryDeclTier 2
positionenum (latest · earliest)latest
filterstringTier 2: Starlark filter over event payload
transformstringTier 2: Starlark transform over event payload
dead_letterDeliveryTargetTier 2
max_retryintegerTier 2
retentionstringTier 2: stream retention duration
deliverySubDeliveryDeclTier 2: delivery channel

<!-- /generated:attributes -->

Gotchas

  • Reliabilitas mensyaratkan kedua sisi: publisher durable + subscriber durable = reliable. Publisher non-durable + subscriber durable = error validasi.
  • before_* = sync, on_* = async — konvensi penamaan mengunci tipe event. Event di luar pola wajib deklarasi type eksplisit.
  • Subscription masuk consent footprint module konsumen.
  • Cross-ref: docs/spec/backend/01-core-basic.md §7 · ai_skills/formspec-kinds

Standar terbuka (CC0) dengan implementasi referensi.