A Cloud as an Interface

CloudI is an open-source private cloud computing framework for efficient, scalable, and stable soft-realtime event processing. CloudI can easily integrate with software written in C/C++, Erlang, Java, Python, and Ruby with its light-weight API. Read more about what CloudI is within the FAQ.

C event handler example:

void calculate_probability(cloudi_instance_t * api,
                           int const command,
                           char const * const name,
                           void const * const request_info,
                           uint32_t const request_info_size,
                           void const * const request,
                           uint32_t const request_size,
                           uint32_t timeout,
                           int8_t priority,
                           char const * const trans_id,
                           char const * const pid,
                           uint32_t const pid_size)
{
    float const events_expected = get_expected(request, request_size);
    float const events_possible = get_possible();
    float const probability = events_expected / events_possible;
    
    cloudi_return(api, command, name, "", 0,
                  &probability, sizeof(float),
                  timeout, trans_id, pid, pid_size);
}
  

Python publisher/subscriber example:

def process_signal(self, command, name, requestInfo, request,
                   timeout, priority, transId, pid):
    # publish to the listener
    self.__api.mcast_async("/external/system23/listener", request)
    return run_transform(result)
  

Ruby remote procedure call (RPC) example:

def current_status(command, name, requestInfo, request,
                   timeout, priority, transId, pid)
    # request the switch status
    switch_status = @api.sync_send("/network/switch11/status", "requests")
    return determine_status(switch_status)
end
  

All CloudI service messages can exchange unstructured data while pursuing RESTful development practices within a Service Oriented Architecture (SOA). CloudI service requests are load balanced with service based fault-tolerance. CloudI scales linearly for distributing realtime service load.