trustgraph/trustgraph-base/trustgraph
Cyber MacGeddon 2f713753e1 Config push notify pattern: replace stateful pub/sub with
signal+ fetch

Replace the config push mechanism that broadcast the full config
blob on a 'state' class pub/sub queue with a lightweight notify
signal containing only the version number and affected config
types. Processors fetch the full config via request/response from
the config service when notified.

This eliminates the need for the pub/sub 'state' queue class and
stateful pub/sub services entirely. The config push queue moves
from 'state' to 'flow' class — a simple transient signal rather
than a retained message.  This solves the RabbitMQ
late-subscriber problem where restarting processes never received
the current config because their fresh queue had no historical
messages.

Key changes:
- ConfigPush schema: config dict replaced with types list
- Subscribe-then-fetch startup with retry: processors subscribe
  to notify queue, fetch config via request/response, then
  process buffered notifies with version comparison to avoid race
  conditions
- register_config_handler() accepts optional types parameter so
  handlers only fire when their config types change
- Short-lived config request/response clients to avoid subscriber
  contention on non-persistent response topics
- Config service passes affected types through put/delete/flow
  operations
- Gateway ConfigReceiver rewritten with same notify pattern and
  retry loop
2026-04-06 16:49:10 +01:00
..
api SPARQL service supports batching/streaming (#755) 2026-04-02 17:54:07 +01:00
base Config push notify pattern: replace stateful pub/sub with 2026-04-06 16:49:10 +01:00
clients RabbitMQ pub/sub backend with topic exchange architecture (#752) 2026-04-02 12:47:16 +01:00
knowledge Subgraph provenance (#694) 2026-03-13 11:37:59 +00:00
messaging SPARQL service supports batching/streaming (#755) 2026-04-02 17:54:07 +01:00
objects Feature/pkgsplit (#83) 2024-09-30 19:36:09 +01:00
provenance Wire message_id on all answer chunks, fix DAG structure (#748) 2026-04-01 13:27:41 +01:00
schema Config push notify pattern: replace stateful pub/sub with 2026-04-06 16:49:10 +01:00
exceptions.py Librarian (#304) 2025-02-11 16:01:03 +00:00
log_level.py Pub/sub abstraction: decouple from Pulsar (#751) 2026-04-01 20:16:53 +01:00
rdf.py Remove schema:subjectOf edges from KG extraction (#695) 2026-03-13 12:11:21 +00:00