Spaces:
Sleeping
Sleeping
| # Event Buses | |
| Puter's backend has two event buses: | |
| - Service Event Bus | |
| - Application Event Bus | |
| ## Service Event Bus | |
| This is a simple event bus that lives in the [Container](../../src/services/Container.js) | |
| class. There is only one instance of **Container** and it is called the "services container". | |
| When Puter boots, all the services registered by modules are registered into the services | |
| container. | |
| Services handle events from the Service Event Bus by implementing methods which are named | |
| with the prefix `__on_`. This prefix looks a little strange at first so it's worth | |
| breaking it down: | |
| - `__` (two underscores) prevents collision with common method names, and also | |
| common conventions like beginning a method name with a single underscore | |
| to indicate a method that should be overridden. | |
| - `on` is the meaningful name. | |
| - `_`, the last underscore, is for readability, as the event name conventionally | |
| begins with a lowercase letter. | |
| Note that you will need to use the | |
| Example: | |
| ```javascript | |
| class MyService extends BaseService { | |
| ['__on_boot.ready'] () { | |
| // | |
| } | |
| } | |
| ``` | |