mirror of
https://github.com/logos-messaging/logos-delivery.git
synced 2026-06-05 05:29:45 +00:00
* Convert DeliveryService into optionally mountable MessagingClient
* Move SubscriptionManager to core layer (WakuNode)
* Ensure libwaku kernel_api/ still works (deprecated; removal pending)
* Create node_types.nim to allow WakuNode to compose subsystems cleanly
* Create node_telemetry.nim to centralize Prometheus types
* Remove unnecessary "ptr Waku" / "addr waku" indirection
* Rename Waku.startWaku -> Waku.start for upcoming Waku rename
* Write complete proc surface for SubscriptionManager (all intents expressible)
* Rename edgeFilterHealthLoop -> edgeFilterConnectionLoop ("Health" means monitoring)
* logosdelivery_start_node calls mountMessagingClient then starts
* libwaku and wakunode2 do not mount messagingClient
* misc refactors/moves, improvements, fixes
52 lines
1.6 KiB
Nim
52 lines
1.6 KiB
Nim
import brokers/request_broker
|
|
|
|
import waku/api/types
|
|
import waku/node/health_monitor/[protocol_health, topic_health, health_report]
|
|
import waku/waku_core/topics
|
|
import waku/common/waku_protocol
|
|
|
|
export protocol_health, topic_health
|
|
|
|
# Get the overall node connectivity status
|
|
RequestBroker(sync):
|
|
type RequestConnectionStatus* = object
|
|
connectionStatus*: ConnectionStatus
|
|
|
|
# Get the health status of a set of content topics
|
|
RequestBroker(sync):
|
|
type RequestContentTopicsHealth* = object
|
|
contentTopicHealth*: seq[tuple[topic: ContentTopic, health: TopicHealth]]
|
|
|
|
proc signature(topics: seq[ContentTopic]): Result[RequestContentTopicsHealth, string]
|
|
|
|
# Get a consolidated node health report
|
|
RequestBroker:
|
|
type RequestHealthReport* = object
|
|
healthReport*: HealthReport
|
|
|
|
# Get the health status of a set of shards (pubsub topics)
|
|
RequestBroker(sync):
|
|
type RequestShardTopicsHealth* = object
|
|
topicHealth*: seq[tuple[topic: PubsubTopic, health: TopicHealth]]
|
|
|
|
proc signature(topics: seq[PubsubTopic]): Result[RequestShardTopicsHealth, string]
|
|
|
|
# Get the health status of a mounted protocol
|
|
RequestBroker:
|
|
type RequestProtocolHealth* = object
|
|
healthStatus*: ProtocolHealth
|
|
|
|
proc signature(protocol: WakuProtocol): Future[Result[RequestProtocolHealth, string]]
|
|
|
|
# Get edge filter health for a single shard (set when edge mode is active)
|
|
RequestBroker(sync):
|
|
type RequestEdgeShardHealth* = object
|
|
health*: TopicHealth
|
|
|
|
proc signature(shard: PubsubTopic): Result[RequestEdgeShardHealth, string]
|
|
|
|
# Get edge filter confirmed peer count (set when edge mode is active)
|
|
RequestBroker(sync):
|
|
type RequestEdgeFilterPeerCount* = object
|
|
peerCount*: int
|