trustgraph/tests/unit/test_base
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
..
test_async_processor.py Fix tests (#593) 2025-12-19 08:53:21 +00:00
test_cassandra_config.py Basic multitenant support (#583) 2025-12-05 21:45:30 +00:00
test_document_embeddings_client.py Embeddings API scores (#671) 2026-03-09 10:53:44 +00:00
test_flow_parameter_specs.py More LLM param test coverage (#535) 2025-09-26 01:00:30 +01:00
test_flow_processor.py Config push notify pattern: replace stateful pub/sub with 2026-04-06 16:49:10 +01:00
test_llm_service_parameters.py More LLM param test coverage (#535) 2025-09-26 01:00:30 +01:00
test_prompt_client_streaming.py Update to add streaming tests (#600) 2026-01-06 21:48:05 +00:00
test_publisher_graceful_shutdown.py Fix tests (#593) 2025-12-19 08:53:21 +00:00
test_subscriber_graceful_shutdown.py Fix subscriber unexpected message causing queue clogging (#642) 2026-02-23 14:34:05 +00:00