A Controlled Vocabulary of Events
Without constraints, observability data becomes inconsistent and difficult to query. SpanForge avoids this by defining a centralized event type registry.
Each event type has a fixed schema and meaning. Examples include:
llm.completion.startedllm.completion.succeededretrieval.vector.queriedguardrail.check.failed
This shared vocabulary ensures that data remains coherent across services and teams.
The impact is immediate in practice. Without a registry, one system might emit llm_response, another model_output, and a third completion_result. Queries fail silently, analytics fragment, and meaning is lost.
The registry eliminates this ambiguity. It replaces convention with contract.
New event types can be introduced, but only through a controlled process. This preserves flexibility without sacrificing long-term coherence.