Overview of ecdysis for graceful restarts
mainThe ecdysis library is a Rust tool designed for performing graceful restarts of network services. It allows you to update running code or configuration without disrupting existing client connections by starting a new process, transferring clients to it, and then exiting the old process.
Key design goals include:
- Ensuring no old code remains running after a successful upgrade.
- Providing a grace period for the new process to perform initialization.
- Allowing the process to crash safely during the initialization phase.
- Ensuring only a single upgrade runs in parallel at any time.
ecdysis is based on the Go library tableflip and is suitable for scenarios where socket inheritance and rebinding are prioritized.