GraphQL API + Client
We use Apollo GraphQL Client for Redwood. Highly recommend checking out the Python version:
(^^ older article but seems like a good overview)
Long Running Process + UI Updates
Ah, that makes sense now. I focused on the “long running process” part (for which I’d still suggest Inngest to manage things if applicable).
Realtime has a lot of overhead. So you might want to look into services like Pusher.
From the Redwood Web component, you can use the built-in Apollo Client to poll. See this doc on pollInterval. Conceivably, you could poll the Redwood GraphQL API (assuming the background process is updating the DB) OR you could poll a GraphQL API from you Python service.
Additionally, you could set up a realtime stream between your Python service and Redwood Web component(s). Here’s an example experiment for that case: WebSockets with RedwoodJS [experiment]