Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: add diagram for event bus understanding #540

Merged
merged 1 commit into from
Nov 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions docs/develop/event-bus/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Understanding the event bus data flow

For general information about the event bus, hava a look [here](../../../src/catalog/event-bus/README.md).

The following diagram demonstrates the data flow on the event bus:

![Event Bus Data flow](../../img/gs_cloud_eventbus_diagram.svg)

1. Changes on the catalog/config level are usually done via the REST interface or the WebUI (via the Gateway)
2. Changes are persisted in the catalog/config
3. The `CatalogApplicationEventPublisher` listens to the events of the (native) GeoServer/Catalog (triggered by step 2)
4. Whenever such an event fires, the `CatalogApplicationEventPublisher` will publish a "local" `GeoServerEvent`. Have a look [here](../../../src/catalog/events/README.md) for the full type hierarchy.
5. The `RemoteGeoServerEventBridge` (listens to these `GeoServerEvent`s and) broadcasts `RemoteGeoServerEvent`s to the event bus.
6. All registered microservices listen for incoming `RemoteGeoServerEvent`s
7. The payload of these remote events will be published as local events to reload/refresh the catalog/config locally.
4 changes: 4 additions & 0 deletions docs/img/gs_cloud_eventbus_diagram.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading