Registro de eventos del busBus event registry

el contrato entre equiposthe contract between teams

Dentro del buddy nadie llama a nadie: todo son eventos con nombre. Esta lista es lo que permite que los equipos trabajen en paralelo. Generada leyendo el código — cada sitio que publica o escucha está enlazado abajo. Nothing inside the buddy calls anything directly — it is all named events. This list is what lets the teams work in parallel. Generated by reading the source: every publish and subscribe site is listed below.

Quién define eventos nuevosWho defines new events

Cada equipo es dueño de su prefijo. Crear un evento dentro de tu espacio no pide permiso: un PR que cambia el código y este registro a la vez. Cambiar o borrar el de otro equipo necesita a su responsable. Each team owns its prefix. Adding an event inside your namespace needs no permission — one PR changing the code and this registry together. Changing or removing another team's event needs their leader.

Firmware es dueño del contrato, no de todos los eventos: las convenciones, el formato del payload y este archivo. Firmware owns the contract, not every event: the conventions, the payload format, and this file.

El motivo: si firmware nombra todo, los demás equipos se bloquean esperando a una persona. Si cada uno inventa libremente, la misma idea aparece tres veces con tres nombres. The reason: if Firmware names everything, the other tracks block on one person. If everyone invents freely, the same idea shows up three times under three names.

Reglas al escribir un handlerRules when writing a handler

No bloquees nunca. La entrega es en cola y en un solo hilo (pump()): un handler lento retrasa a todos los demás. A cambio, los handlers nunca corren a la vez y no necesitan locks. Never block. Delivery is queued and single-threaded (pump()): one slow handler delays every other subscriber. In exchange, handlers never run concurrently and need no locking.

El payload es un solo string. Texto plano siempre que se pueda; nunca bytes: pasa una ruta o un id. Si necesitas un segundo campo, consúltalo antes con el dueño del contrato. The payload is one string. Plain text where possible; never bytes — pass a path or an id. If you need a second field, check with the contract owner first.

Los nombres son para siempre. Añadir es barato; renombrar rompe todos los packs que ya existen. Names are forever. Adding is cheap; renaming breaks every pack already in the wild.

Agujeros conocidosKnown gaps