Constructor
# new ObserverSubscriptionRegistry()
Tracks which requester fingerprint is subscribed to which webhook-style
topics and enforces a single SSE client per fingerprint. Topics follow the webhook
syntax: <model>.* (default) or the enhanced <model>.<action|*>.<item id/pk>
form, matched with matchesTopic. The registry is the server-side state
backing the SSE EventsController and EventsSubscriptionController.
Graph-agnostic registry for observer topic subscriptions
sequenceDiagram
participant Client
participant Registry as ObserverSubscriptionRegistry
Client->>Registry: upsert(fingerprint, topics)
Registry-->>Client: record
Client->>Registry: claimConnection(fingerprint)
Registry-->>Client: true (or false if already active)
Client->>Registry: matches(fingerprint, eventTopic)
Registry-->>Client: true/false
Client->>Registry: releaseConnection(fingerprint)