Files
plainleaf/website/Service.md
T
2025-11-24 10:55:49 +01:00

14 lines
955 B
Markdown

The SilverBullet service bus is an extension mechanism built into SilverBullet.
# Concepts
* Discovery: the process of discovering available services based on a _selector_.
* Selector: a string (possibly with a wildcard `*`) used to advertise as well as discover services.
* Service: defined via [[API/service#service.define(spec)]]), implements a service advertised via a selector.
* Invocation: running a discovered service.
# Architecture
Services are an abstraction built on top of [[Event]]. When a new service is defined, it registers itself listening to the `discover:<<selector>>` event (to be discovered), and under `service:<<guid>>` to be invoked.
Service discovery happens by broadcasting an event on the event bus with the given selector, returning a list of services that are a match, ordered by (self assigned) priority. One (or all) of these services can then be invoked based on their returned ID.
See [[API/service]] for API details.