You can do zero downtime using Systemd socket activation. I tried this with a Go server using SQLite and it was perfect.
https://bunrouter.uptrace.dev/guide/go-zero-downtime-restart...