
Centrifugo – real-time messaging server in Go, supports WebSockets and SockJS - FZambia
https://github.com/centrifugal/centrifugo
======
FZambia
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/](http://fzambia.gitbooks.io/centrifugal/content/)).
It supports Websocket and SockJS client connections. Originally server was
written in Python
([https://github.com/centrifugal/centrifuge](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.

~~~
bsaul
i've got mutliple questions :

\- are there any logging capabilities ? For exemple for feeding a cassandra
cluster for later event analysis and processing.

\- are there any monitoring feature ? Inspecting server load or average
latency ?

\- what about sharding in case of load ?

~~~
FZambia
Hello!

\- 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](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](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

