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.