BusDK Update

Bus Events saa komentopinnan ja API-providerin

bus-events tuo tapahtumien lähetyksen ja kuuntelun komentoriville. bus-api-provider-events tarjoaa JWT-suojatun HTTP-pinnan, jonka takana sama tapahtumabussi voi käyttää muistia, Redisiä tai PostgreSQL:ää.

Tämä tekee event-pohjaisista integraatioista BusDK:ssa oman rajatun pinnan: integraatiotyöntekijät voivat käsitellä tapahtumakuoria ilman, että niiden tarvitsee tuntea HTTP-controllerin toteutusta.

26.4.2026bus-eventsBus APIEvents

Tiiviisti

TL;DR

  • bus events send julkaisee yhden tapahtuman ja bus events listen lukee osuvat tapahtumat newline-delimited JSON -virtana.
  • Providerin HTTP-pinta on POST /api/v1/events ja GET /api/v1/events/stream; suojaamattomat eventit käyttävät events:send/events:listen-scopeja ja Bus integration -eventit omia domain-scopejaan.
  • Jakelutilat ovat broadcast kaikille kuuntelijoille ja work consumer group -tyyppiseen työnjakoon.

Yksinkertaisin virta lähettää tapahtuman ja kuuntelee samaa nimeä:

$ bus events --api-token "$BUS_API_TOKEN" \
  send --name example.ping --payload '{"ok":true}'
{
  "accepted": true,
  "name": "example.ping"
}
$ bus events --api-token "$BUS_API_TOKEN" listen --name example.ping
{"name":"example.ping","payload":{"ok":true},"account_id":"acct_e2e"}

Oletusjakelu on broadcast: jokainen samaa tapahtumaa kuunteleva saa oman kopionsa. Työjonossa sama tapahtuma annetaan vain yhdelle saman ryhmän kuluttajalle:

$ bus events --api-token "$BUS_API_TOKEN" listen \
  --name example.job \
  --delivery unicast \
  --group workers \
  --consumer worker-a

Provider pitää HTTP-pinnan pienenä. Tapahtuman julkaisu käyttää POST /api/v1/events, ja kuuntelu käyttää stream-polkuja kuten GET /api/v1/events/stream?name=example.job&delivery=unicast&group=workers&consumer=worker-a. Suojaamattomiin eventteihin riittävät events:send ja events:listen; suojatut Bus integration -prefixit, kuten bus.vm.* ja bus.containers.*, tarkistetaan domain-scopeilla. Account tunnistetaan bearer-tokenin sub-claimista.

Taustaksi voi valita muistissa toimivan kehitysbussin, Redis Streams -toteutuksen tai PostgreSQL:n. PostgreSQL-tausta luo pienen event-login itse, käyttää LISTEN/NOTIFY-herätystä ja palaa SQL-kyselyyn, jos herätystä ei tule. Tarkempi komentopinta löytyy bus-events-dokumentaatiosta ja providerin palvelinpuoli bus-api-provider-eventsin dokumentaatiosta.