Message Bus Query Fetcher¶
message_bus_query_fetcher
¶
Message-bus-backed QueryFetcherPort adapter.
Delegates query dispatch to an injected MessageBusPort.
MessageBusQueryFetcher
¶
Bases: QueryFetcherPort[QueryPayloadType, QueryFetcherResult]
Infrastructure adapter that fetches query results via a MessageBusPort.
Implements QueryFetcherPort by delegating fetch to
MessageBusPort.dispatch.
Example
class Query[T]:
def __init__(self) -> None:
pass
class InMemoryMessageBus[MT, R]:
async def dispatch(self, message: MT) -> R: ...
def register(self, message_type, handler): ...
class MyQuery(Query[dict[str, object]]):
def __init__(self) -> None:
pass
bus = InMemoryMessageBus[MyQuery, str]()
fetcher = MessageBusQueryFetcher[dict[str, object], str](bus)
result = await fetcher.fetch(MyQuery())
Source code in src/forging_blocks/infrastructure/message_bus/message_bus_query_fetcher.py
fetch(query: Query[QueryPayloadType]) -> QueryFetcherResult
async
¶
Fetch a query result via the message bus.