It is sometimes useful to update the running code and/or configuration of a network service, without disrupting existing connections. Usually, this is achieved by starting a new process, somehow transferring clients to it, and then exiting the old process. There are many ways to implement graceful upgrades. They vary wildly in the trade-offs they make, and how much control they afford the user. No old code keeps running after a successful upgrade. The new process has a grace period for performing initialization. Crashing during initialization is OK. Only a single upgrade is ever run in parallel.

Features

  • tableflip works on Linux and macOS
  • No old code keeps running after a successful upgrade
  • The new process has a grace period for performing initialisation
  • Crashing during initialisation is OK
  • Only a single upgrade is ever run in parallel
  • Integration with systemd

Project Samples

Project Activity

See All Activity >

Categories

Frameworks

License

BSD License

Follow Graceful process restarts in Go

Graceful process restarts in Go Web Site

Other Useful Business Software
Forever Free Full-Stack Observability | Grafana Cloud Icon
Forever Free Full-Stack Observability | Grafana Cloud

Our generous forever free tier includes the full platform, including the AI Assistant, for 3 users with 10k metrics, 50GB logs, and 50GB traces.

Built on open standards like Prometheus and OpenTelemetry, Grafana Cloud includes Kubernetes Monitoring, Application Observability, Incident Response, plus the AI-powered Grafana Assistant. Get started with our generous free tier today.
Create free account
Rate This Project
Login To Rate This Project

User Reviews

Be the first to post a review of Graceful process restarts in Go!

Additional Project Details

Operating Systems

Linux, Mac, Windows

Programming Language

Go

Related Categories

Go Frameworks

Registered

2023-01-20