Ocypod is a Redis-backed service for orchestrating background jobs. Clients/workers can be written in any language, using HTTP/JSON to queue/fetch jobs, store results, etc.
A common pattern seems to be including progress information in a job's output, and checking that during a job's lifetime.
Having only an output field to store this in sometimes causes issues, e.g.:
output might be huge, and fetching large output repeatedly to check progress can be inefficient
more complex to handle in languages where JSON is mapped to structs/objects etc. (often either a compount type or tagged union is used to handle a progress data structure and a final output data structure)
A common pattern seems to be including progress information in a job's output, and checking that during a job's lifetime.
Having only an output field to store this in sometimes causes issues, e.g.:
Adding a new optional field might simplify this.