Skip to content

Commit

Permalink
docs: review comments
Browse files Browse the repository at this point in the history
Signed-off-by: Michael Adler <michael.adler@siemens.com>
  • Loading branch information
michaeladler committed Aug 28, 2023
1 parent f3885b0 commit cd8efc5
Showing 1 changed file with 10 additions and 6 deletions.
16 changes: 10 additions & 6 deletions docs/operations.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,22 +113,26 @@ The `wfxctl` tool offers a reference client implementation. The following comman
wfxctl job events
```

This may result in a large number of events, though. For a more targeted approach, filter parameters may be used, e.g.
This may result in a large number of events, though. For a more targeted approach, filter parameters may be used.
Assuming the job ids are known (because the jobs have been created already), the following will subscribe to events for
job IDs that match either of the two specified:

```bash
wfxctl job events --ids d305e539-1d41-4c95-b19a-2a7055c469d0,e692ad92-45e6-4164-b3fd-8c6aa884011c
```

subscribes to events for jobs with IDs that match either of the two specified.
See `wfxctl job events --help` for other filter parameters, e.g. workflow names.

#### Caveats

1. Job status updates are dispatched asynchronously to prevent a subscriber from causing a delay in status updates.
Consequently, messages may be delivered **out-of-order** as perceived by the client. This is typically not an issue;
however, under circumstances with high concurrency, such as multiple clients attempting to modify the same job or a
single client sending a burst of status updates, this behavior might occur.
Consequently, messages may be delivered **out-of-order** as probably expected by a client assuming a _natural_
ordering of events. This is typically not an issue; however, under circumstances with high concurrency, such as
multiple clients attempting to modify the same job or a single client sending a burst of status updates, this
behavior might occur.
2. Server-Sent Events rely on one-way communication, and there is **no acknowledgment** or handshake protocol to ensure
message delivery. In other words, there are scenarios where certain events may never reach the subscriber.
message delivery (because that's against the design principle of SSE). In other words, there are scenarios where
certain events may never reach the subscriber.
3. When scaling out horizontally, the load balancer should implement stickiness based on job IDs.
Alternatively, the client can subscribe to updates from every wfx instance and subsequently aggregate the events it receives.
4. Browsers typically limit SSE connections (6 per domain). HTTP/2 can be used instead (100 connections by default) or some kind of
Expand Down

0 comments on commit cd8efc5

Please sign in to comment.