From fd8fcdf307997b98db952855e6968aa5fff486bd Mon Sep 17 00:00:00 2001 From: Dan Jones <dan.jones@noc.ac.uk> Date: Mon, 13 Mar 2023 16:54:09 +0000 Subject: [PATCH] docs: corrections to pubsub topic docs --- README.md | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 2e2c8b5..702df2e 100644 --- a/README.md +++ b/README.md @@ -17,16 +17,23 @@ Messages are routed using either a publish/subscribe or broadcast mechanism. For published messages, the message is published for a given a topic. -Clients create a subscription to a topic pattern which may include wildcards. +Clients create a subscription (stored in their config) to a topic pattern which may include wildcards. +It's important to note that the client config documents the subscription. To change a client +subscription it must be updated with the backbone. -Messages with a topic matching a client's subscription pattern are delivered to that client. +Published messages are delivered to all clients where +the message topic matches the client's subscription +topic pattern. -Broadcast messages are delivered to all clients regardless of their subscription. +Broadcast messages are delivered to all clients regardless of their subscription. ### Field The topic should be set in the `message.header.destination` for published messages. -The desintation field should be set to `broadcast` for any messages sent using broadcast. +The `destination` field should be set to `broadcast` for any messages sent using broadcast. + +Because the `destination` field is a topic it defines what the message relates to - not +who the intended recipient is. ### Structure @@ -39,21 +46,13 @@ e.g ### Terms -The `header.destination` field contains the topic that messages will be published to. - -This is not the intended recipient of those messages. - -The autonomy engine/frontend/c2s are not represented in the topic. - -The topic describes what the message relates to. - -The client `subscription` will define which clients receive a message. - * `prefix` - an agreed hard-coded/config setting prefix shared by all adapters and client subscriptions eg soar * `operator` - human readable organisation name for the platform operator one of [noc|planet-ocean|hydrosurv] * `platform_type` - one of [autosub|ecosub|reav?] * `platform_identifier` - human readable identifier for the platform eg ah1, eco1, reav1 -* `to_platform|from_platform` - eg ..to_platform.mission_plan, ..from_platform.platform_status +* `to_platform|from_platform` - eg ..to_platform.mission_plan, ..from_platform.platform_status +missions are sent `to_platform` to be executed and status updates are received `from_platform` containing +information about its position and health status * `message_type` - one of `[acknowledgement|mission_plan|observation|planning_configuration|platform_status...]` ### Subscriptions -- GitLab