by Drew Miller on 2025-10-11
Desktop software can be fast, local and secure--critical for good legal technology.
But, unlike web apps, desktop applications go stale and require updates for each new build.1
Each such update is a moment of truth for the application’s developers. For some period during the update the application is almost unavoidably non-functional. If things go wrong, the user may be stuck with the current version forever. Worse, a bad update may brick the application altogether. And you’ve worked really, really hard to deliver great software in the first place.2
There are some Rust crates addressing this, but because it is so central to the user experience, this is again an operation Tritium wants to own.
So what’s a good approach? Let’s consider a few examples.
Background Update Daemon
Some applications run a background service which manages updates.
Adobe, for example, seems to have a separate auto-update binary called Adobe Acrobat Update Service that runs as a daemon. A separate service running at predictable intervals allows them to ensure pristine conditions for updates at off-peak hours, perhaps with even timing staggered to ensure sufficient bandwidth on the update server. They can manage atomic updates and rollbacks while the user sleeps.
Oh, and they also get routine passive telemetry about their installed base as a side effect.
... continue reading