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.2.0 (May 11, 2008)

Caplin Liberator Cometd (Python) ErlyComet GlassFish Jetty Lightstreamer Meteor Orbited Persevere
General
Status Production Beta Alpha Production Production Production Production Late Alpha Beta
Version 4.4.13 0.9 Alpha 2 6.1 3.x 1.06 0.4 0.9.6
License Commercial BSD MIT Apache 2.0 or Commercial Apache 2.0 Commercial GPL v2 MIT BSD or AFL
Pricing Free or Commercial Free Free Free or Commercial Free Free or Commercial Free Free Free
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
Message Delivery Guarantee Yes No Yes Yes No Yes Yes Yes Yes
Platforms
Unix/Linux Yes Yes Yes Yes Yes Yes Yes Yes Yes
Mac No Yes Yes Yes Yes Yes Yes Yes Yes
Windows No Yes Yes Yes Yes Yes Yes Yes Yes
Languages
Server C Python Erlang Java Java Java Perl Python Java/JavaScript
Server APIs C, Java Python Erlang Java Java Java, .NET, TCP sockets Perl Python Java, JavaScript
Client APIs (in addition to JavaScript) Java, .Net Python Erlang Java Java Flash, Flex, Java (SE/ME), .NET Many Many
Transports
Polling Yes Yes Yes Yes Yes Yes Yes Yes Yes
Long-Polling No Yes Yes Yes Yes Yes Yes Yes Yes
Callback-Polling No Yes Yes Yes Yes No Yes Yes No
Iframe Streaming Yes No No Yes No Yes Yes Yes No
htmlfile Streaming No No No Yes No No Yes Yes No
XHR Streaming Yes No No Yes No No Yes Yes Yes
Multipart Streaming Yes No No Yes No No Yes Yes No
Server Sent Events No No No No No No Yes Yes No
Direct Socket Yes No No No No Yes No No No
Scaling
Horizonal (multiple nodes) Yes No Yes Yes Yes Yes Yes Yes No
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
Caplin Liberator Cometd (Python) ErlyComet GlassFish Jetty Lightstreamer Meteor Orbited Persevere
Copyright 2008 Comet Daily, LLC. All Rights Reserved