After the browser transfers a file, the server may still scan, transcode, extract metadata, or generate previews. The interface needs status updates, but the most fashionable real-time transport is not automatically the most reliable choice for an event guest on a mobile browser.

Start with the update contract

Define states and transitions before choosing transport:

accepted -> queued -> processing -> ready

accepted -> rejected