Here is a link to Centrifugo – real-time messaging server in Go. This is a central part of Centrifugal stack (http://fzambia.gitbooks.io/centrifugal/content/). It supports Websocket and SockJS client connections. Originally server was written in Python (https://github.com/centrifugal/centrifuge), but recently the entire code base moved to Go language. This is a server that works as a service – can be used with web sites written in any language. Feedback is highly appreciated.
- at moment logging is quite unstructured - just text entries, written into stdout or file. In future I am planning to move to something like this (https://github.com/Sirupsen/logrus) and improve log structure.
- metrics exist in Centrifuge but the next step for Centrifugo (the only thing left to be fully compared with Python version). At moment external monitoring tools can be used for CPU and memory monitoring. I am planning to utilize this library for metrics - https://github.com/rcrowley/go-metrics
- you can run several instances on different machines connected via Redis and load balance clients between them. But no sharding support out of the box.
What do you think about this? I highly appreciate any feedback