We used this for a while at Braintree. It works great for Unicorn-style restarts, but it doesn't ensure that the server shuts down gracefully.<p>So while you'll have uninterrupted connectivity, if you don't ensure that your server shuts down gracefully, you'll still drop the requests that the old process is servicing when the restart is triggered. We wrote a library called manners for managing the graceful shutdown of a single server: <a href="https://github.com/braintree/manners" rel="nofollow">https://github.com/braintree/manners</a>. When used in conjunction with manners, GoAgain provides zero-downtime restarts without any dropped requests.<p>(Manners is still under development, so make sure you understand it before using it.)<p>We had an interesting experience with Go. We ended up deciding the language was not a great fit for our needs right now, in part because the community is still pretty immature. (You can read about our experiences here: <a href="https://braintreepayments.com/braintrust/gotchas-irritants-and-warts-in-go-web-development" rel="nofollow">https://braintreepayments.com/braintrust/gotchas-irritants-a...</a>).<p>Still -- as more and more libraries like this get released and stabilized, Go will become an increasingly interesting option for developers.