Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Interesting, thank you for explaining. The lack of monitoring of goroutines is certainly different.

> which if bad things have happened are probably broken.

It reminds me of Joe Armstrong's quote about how it is hard to perform surgery on yourself. In other words having the component that is failing trying to fix itself. I guess I would have to read more about design patterns. I saw a presentation about concurrency patterns in go, but it is about very simple toy examples, I am more interested in a larger concurrent applications, handling multiple connections for example.



Yeah... so far my Go stuff has had exceptional reliability, I verified I handled all error known conditions with errcheck (https://github.com/kisielk/errcheck) and just generally took the slow and plodding approach of handling everything explicitly. My app handles hundreds of thousands of concurrent connections, each one often using and/or spawning 4 or more goroutines.


Thanks for the errcheck link, I will be using that. Would Go authors consider building that into the compiler? That would make quite a bit of sense.


As soon as I first used errcheck, I thought the exact same thing... "this should be included as warnings"


I've found net/http package source code to be useful on this matter, as the package contains production-ready servers and clients implemented in Go itself.


Yes Erlang also has good libraries for that. My question wasn't as much about libraries as about supervision trees.

Having a part of your program fail and restarted if needed. For what I understand so far that isn't possible. It would have to be done at the OS process level instead.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: