[erlang-questions] [ANN] CloudI 1.2.0 Released!

Michael Truog mjtruog@REDACTED
Tue Feb 19 23:59:07 CET 2013

Download 1.2.0 from http://sourceforge.net/projects/cloudi/files/latest/download

What is CloudI?
CloudI (http://cloudi.org) is meant to be a "universal integrator" using an Erlang core, with its actor model, to pursue efficiency, fault-tolerance and scalability.  The CloudI API provides a minimal interface to communicate among actors that are called services, so programming language agnostic, database agnostic, and messaging bus agnostic integration can occur.  CloudI currently integrates with the programming languages Erlang, C/C++, Java, Python, and Ruby, the databases PostgreSQL, MySQL, couchdb, memcached, and tokyotyrant, the messaging bus ZeroMQ and the internal CloudI messaging.  HTTP is also supported for easy integration with cowboy.  If anyone is willing to get involved, don't hesitate to contact me or start looking at the code.

What is CloudI? summary:
(short answer) "An application server that efficiently integrates with many languages, many databases, and many messaging buses in a way that is both scalable and fault-tolerant."
(shorter answer) "A rock-solid transaction processing system for flexible software development."
(shortest answer) "A Cloud at the lowest level."

About the release:
This release includes both a Quick Start and an API doc.  The Quick Start can be found directly on http://cloudi.org (or within doc/README.markdown) and the API doc is on http://cloudi.org/api.html (and at doc/html/api.html).  Any feedback on the documentation is helpful.

Aside from the documentation, the release mainly focused on bugfixes and refactoring.  misultin needed to be removed due to problems with its parameterized modules usage while cowboy has more integration (now using 0.8.0).  Due to confusion, all mentions of "job" within CloudI have been changed to "service" to help avoid communication problems in the documentation.  This impacts what was previously the cloudi_job behavior, which is now the cloudi_service behavior.  So, internal services (services using the cloudi_service Erlang behavior) need the behavior name and the callback names updated, as part of this release.  If you run into any problems, please don't hesitate to report them (here https://github.com/okeuday/CloudI/issues/new ).

The latest news is below:

  * Erlang >= R15B01 is now required due to callback/behavior changes
  * misultin was removed, cowboy now provides better functionality
    (misultin was also broken due to parameterized modules usage)
    cowboy was updated to 0.8.0
  * The documentation and CloudI source code changes so that "job" is no
    longer used to refer to services. Now "service" is used consistently
    to help prevent confusion. This change means that Erlang services
    (i.e., internal services) must now use the cloudi_service behavior
    instead of the cloudi_job behavior and the callback names reflect the
    same change. The CloudI Job API is now referred to as the
    CloudI Service API.
  * A Quick Start and API documentation was added to help people
    learn about CloudI
  * A minor CloudI API change occured that affects Erlang services:
    cloudi_service:recv_async now always returns
    {ResponseInfo, Response, TransId} to be consistent with
    functionality in external services
  * Important bugfixes and improvements are included in this release
      * cloudi_service:unsubscribe will now properly unsubscribe a single
        instance of the service name pattern
      * Many improvements to internal services and
        the python_c external services
      * the ZeroMQ integration service has been fixed
      * the CloudI Service API had some minor issues fixed
      * the flood and messaging tests had some fixes
      * the bug with ACL string usage (from 1.1.1) was fixed
  * The request_timeout_adjustment service configuration option was added
    to make all service requests have their timeout decremented by the
    service request handler's execution time (defaults to false)
  * ZeroMQ v3 is now the default version if it is enabled
    (version 3.2.2 is used, if it isn't already installed)

Please mention any problems, issues, or ideas!


More information about the erlang-questions mailing list