Comet Maturity Guide
We recently asked our contributors to outline the maturity of their preferred Comet server implementation. The summary of those questions are outlined here. If you want to add info about your Comet implementation, please contact us.
Version: 0.5 (Dec 12, 2009)
| Caplin Liberator | Cometd (Python) | ErlyComet | GlassFish | Jetty | Lightstreamer | Meteor | Orbited | Persevere | RMDS2Web Server | |
| General | ||||||||||
| Status | Production | Beta | Alpha | Production | Production | Production | Production | Beta | Production | Production |
| Version | 4.5.9 | 0.9 | Alpha | 3 | 7.0.1 | 3.x | 1.06 | 0.7.x | 1.0 | 1.6 |
| License | Commercial | BSD | MIT | Apache 2.0 or Commercial | Apache 2.0 | Commercial | GPL v2 | MIT | BSD or AFL | Commercial |
| Pricing | Free or Commercial | Free | Free | Free or Commercial | Free | Free or Commercial | Free | Free | Free | Commercial |
| Protocols | RTTP (Real Time Text Protocol) | Bayeux | Bayeux | Bayeux | Bayeux | Lightstreamer Network Protocol | Transports are completely configurable within simple constraints | Revolved | HTTP Channels and Bayeux negotiation | Proprietary |
| Message Delivery Guarantee | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
| Dedicated Comet Server | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
| Platforms | ||||||||||
| Unix/Linux | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
| Mac | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
| Windows | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
| Languages | ||||||||||
| Server | C | Python | Erlang | Java | Java | Java | Perl | Python | Java/JavaScript | Java |
| Server APIs | C, Java, .Net | Python | Erlang | Java | Java | Java, .NET, TCP sockets | Perl | Python | Java, JavaScript | Java |
| Client APIs (in addition to JavaScript) | Java, .Net, Silverlight | Python | Erlang | Java | Java | Flash, Flex, Java (SE/ME), .NET | Many | Many | ||
| Transports | ||||||||||
| Polling | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
| Long-Polling | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
| Callback-Polling | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
| Iframe Streaming | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
| htmlfile Streaming | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
| XHR Streaming | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
| Multipart Streaming | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
| Server Sent Events | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
| Direct Socket | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
| HTML5 WebSocket | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
| Scaling | ||||||||||
| Horizonal (multiple nodes) | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
| Vertical | 30,000 clients max. 1 million total client updates/sec at 10,000 clients | TBD | TBD | Sun achieved 883.66 JOPS@Standard on a single app server instance running on a Sun Fire T2000 server. That translates to over 7000 simultaneous active user | Jetty/Bayeux can support 20,000 simultaneous clients per node with several thousands of messages per second. Jetty/ActiveMQ has been able to deliver 7,000 price changes per second to 40,000 users over a 3 node cluster. | 20,000 - 100,000 (depends only on the message throughputs, not on the number of clients) | 1000 clients per node receiving 2 msgs (~400 bytes) per sec each. Tested up to 5000 clients per node receiving 1 msg/sec each | Tested against 10,000 idling clients without issue on Intel core duo 1.6 GHz | TBD | 500,000 concurrent clients each client receiving 2.4 updates per minute with 17 millisecond end-to-end latency from a single entry-level server DELL SC1435. High throughput: 8,000 concurrent clients each client receiving 100 updates per second with 270 millisecond end-to-end latency from a single Dell SC1435. |
| Caplin Liberator | Cometd (Python) | ErlyComet | GlassFish | Jetty | Lightstreamer | Meteor | Orbited | Persevere | RMDS2Web Server | |


