10 ms·
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. So while you'll
by lbarrow 14y ago
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.
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: https://github.com/braintree/manners https://github.com/braintree/manners. When used in conjunction with manners, GoAgain provides zero-downtime restarts without any dropped requests.
(Manners is still under development, so make sure you understand it before using it.)
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: https://braintreepayments.com/braintrust/gotchas-irritants-and-warts-in-go-web-development https://braintreepayments.com/braintrust/gotchas-irritants-a...).
Still -- as more and more libraries like this get released and stabilized, Go will become an increasingly interesting option for developers.
- mortdeus 14y agoGo is only ever going to be as useful as the community works towards making it useful. We are trying our best to implement all the boilerplate code and solve all of Go's short comings. Go is a very young programming language and unfortunately there are alot of cases where we have to implement pkg foo, bar, baz, because pkg quux depends on them. There are going to be many places where things break at this stage in Go's life, however that shouldnt discourage using Go for real world projects, because many of yesterday's bug end up being debugged and patched today. Go is a great investment for your company, and I hope you and your team reconsider using go for your projects after go 1.1 comes out. http://tip.golang.org/doc/go1.1 http://tip.golang.org/doc/go1.1 If you guys need help, feel free to join us in #go-nuts on freenode's irc server. IMHO, The best feature of go is, arguably, the helpful evangelist-like gopher community hanging out in IRC. We wouldnt mind helping you guys with your issues, but you have to help us help you.
- codexon 14y agoI don't think this is a reasonable demand for startups or even medium sized businesses. Libraries cost time and money to produce, and if you are relying on free volunteers, development will either be slow or buggy and likely both. I remember when I tried to look into a MySQL library last month. The first one I tried wouldn't even compile. The 2nd one threw a connection error not when I issued the dial function, but when I tried a query on a fake IP. If you want Go to succeed, get Google to start funding it more or get used to having it grow organically like every other language.
- enneff 14y agoDid you find this page? https://code.google.com/p/go-wiki/wiki/SQLDrivers https://code.google.com/p/go-wiki/wiki/SQLDrivers The MySQL drivers there are tested and should work. If those were the ones you tried, I'd like to know. I just filed an issue to make the above link more discoverable.
- codexon 14y agoI Googled first and it took me to this page. http://go-lang.cat-v.org/pure-go-libs http://go-lang.cat-v.org/pure-go-libs Next thing I did was ask on IRC, and there wasn't a consensus on which driver to use.
- epoxyhockey 14y agoI'm curious if we can draw any comparisons to what Google is doing with Go and what Sun Microsystems did with Java, as far as a corporation supporting development of a language goes? How many resources did Sun allocate to developing and supporting Java? EDIT: One of the things that excites me about Go as opposed to something like Ruby on Rails or node.js (V8, aside) is that Google is behind it.
- mjcohenw 14y agoGoogle is behind it this year. Next year, who knows?