Skip to main content

Integration Events

As described in Architecture Overview holi uses Google Cloud Pub/Sub to communicate asynchronously and reliably between applications.

Event Types

Currently, the following events are emitted by holi-okuna:

Event NameDescription
UserNameUpdatedEmitted when a user updates their username.
UserEmailUpdatedEmitted when a user updates their email address.
UserDeletedEmitted when a user deletes their account.
SpaceCreatedEmitted when a user creates a space.
SpaceUpdatedEmitted when a user updates a spaces attributes (e.g. name/slug)
SpaceUserAddedEmitted when a user joins a space.
SpaceUserLeftEmitted when a user leaves a space.
SpaceUserRemovedEmitted when a user is removed from a space by a space administrator.
SpaceDeletedEmitted when a space is deleted.

Event Payloads

Messages on Google Cloud Pub/Sub follow this (exemplary) structure:

{
"message": {
"data": "<BASE64_ENCODED_PAYLOAD>",
"attributes": {
"eventType": "SpaceCreated",
"eventVersion": "1.0.0"
}
},
"subscription": "projects/MY-PROJECT/subscriptions/MY-SUB"
}

For every event emitted by a holi emitter two key/value pairs are to be added to the attributes object:

  • eventType: name of the event
  • eventVersion: version of the event (uses semantic versioning)

At this point of time, there's no dedicated documentation for the data field of the event (which varies depending on eventType). Please refer to

to learn more about the payloads.

Publish/Subscribe Topics

Currently, topics are separated per environment only: okuna_$ENVIRONMENT (in which $ENVIRONMENT is either staging or production).