All Projects → CloudI → Cloudi

CloudI / Cloudi

Licence: mit
A Cloud at the lowest level!

Programming Languages

erlang
1774 projects

Projects that are alternatives of or similar to Cloudi

Orleans
Orleans is a cross-platform framework for building distributed applications with .NET
Stars: ✭ 8,131 (+2209.94%)
Mutual labels:  cloud-computing, reactive, concurrency, actor-model, scalability, distributed-systems
Dasync
Every developer deserves the right of creating microservices without using any framework 🤍
Stars: ✭ 154 (-56.25%)
Mutual labels:  microservices, cloud, cloud-computing, actor-model, distributed-systems
Thespian
Python Actor concurrency library
Stars: ✭ 220 (-37.5%)
Mutual labels:  concurrency, actor-model, scalability, distributed-systems, fault-tolerance
Akka
Build highly concurrent, distributed, and resilient message-driven applications on the JVM
Stars: ✭ 11,938 (+3291.48%)
Mutual labels:  reactive, concurrency, actor-model, distributed-systems
reacted
Actor based reactive java framework for microservices in local and distributed environment
Stars: ✭ 17 (-95.17%)
Mutual labels:  distributed-systems, reactive, actor-model, scalability
ring-election
A node js library with a distributed leader/follower algorithm ready to be used
Stars: ✭ 92 (-73.86%)
Mutual labels:  distributed-systems, scalability, concurrency
Jdonframework
Domain-Driven-Design Pub/Sub Domain-Events framework
Stars: ✭ 978 (+177.84%)
Mutual labels:  microservices, reactive, concurrency
Genie
Distributed Big Data Orchestration Service
Stars: ✭ 1,544 (+338.64%)
Mutual labels:  microservices, cloud, distributed-systems
Vald
Vald. A Highly Scalable Distributed Vector Search Engine
Stars: ✭ 158 (-55.11%)
Mutual labels:  microservices, cloud, distributed-systems
Nats Server
High-Performance server for NATS.io, the cloud and edge native messaging system.
Stars: ✭ 10,223 (+2804.26%)
Mutual labels:  cloud, cloud-computing, distributed-systems
Azos
A to Z Sky Operating System / Microservice Chassis Framework
Stars: ✭ 137 (-61.08%)
Mutual labels:  microservices, cloud, actor-model
Service Fabric
Service Fabric is a distributed systems platform for packaging, deploying, and managing stateless and stateful distributed applications and containers at large scale.
Stars: ✭ 2,874 (+716.48%)
Mutual labels:  microservices, cloud-computing, distributed-systems
Nact
nact ⇒ node.js + actors ⇒ your services have never been so µ
Stars: ✭ 848 (+140.91%)
Mutual labels:  microservices, actor-model, distributed-systems
Zato
ESB, SOA, REST, APIs and Cloud Integrations in Python
Stars: ✭ 889 (+152.56%)
Mutual labels:  microservices, soa, scalability
Micro
Micro is a distributed cloud operating system
Stars: ✭ 10,778 (+2961.93%)
Mutual labels:  microservices, cloud, distributed-systems
Scalecube Services
ScaleCube Services is a high throughput, low latency reactive microservices library built to scale. it features: API-Gateways, service-discovery, service-load-balancing, the architecture supports plug-and-play service communication modules and features. built to provide performance and low-latency real-time stream-processing. its open and designed to accommodate changes. (no sidecar in a form of broker or any kind)
Stars: ✭ 482 (+36.93%)
Mutual labels:  microservices, actor-model, distributed-systems
beems
a bee-queue based minimalist toolkit for building fast, decentralized, scalable and fault tolerant microservices
Stars: ✭ 33 (-90.62%)
Mutual labels:  scalability, concurrency, soa
Lagom
Reactive Microservices for the JVM
Stars: ✭ 2,590 (+635.8%)
Mutual labels:  microservices, reactive, distributed-systems
traffic
Massively real-time traffic streaming application
Stars: ✭ 25 (-92.9%)
Mutual labels:  distributed-systems, actor-model, concurrency
Awesome Scalability Toolbox
My opinionated list of products and tools used for high-scalability projects
Stars: ✭ 34 (-90.34%)
Mutual labels:  cloud, scalability, distributed-systems

CloudI 2.0.1

Build Status CloudI IRC Project Stats

LICENSE

MIT License

ABOUT

What is CloudI?

(short answer) "A distributed application server that provides efficient messaging for many programming languages within a single service abstraction 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."

Who would use CloudI?

Software developers that do not want to get locked into corporate vendors or frameworks that push for perpetual commercial support or licenses.

Why should CloudI be used?

CloudI makes software fault-tolerant and scalable, utilizing Erlang, even if the software is legacy source code. CloudI mitigates software development risk (delays or failures) when making software scale in non-Erlang programming languages, or during a conversion of a software system (fully or partially) to the Erlang programming language.

How should CloudI be used?

The CloudI API provides a simple set of functions for Service-Oriented Architecture (SOA) development in any supported language (currently C/C++, Go, Haskell, Java, JavaScript, OCaml, Perl, PHP, Python, Ruby, and Erlang/Elixir):

  • subscribe, unsubscribe, subscribe_count
  • send_async, send_sync, mcast_async (mcast_async == publish)
  • recv_async
  • return, forward

External communication that needs to scale (beyond 10,000 connections) can use an existing internal CloudI service (implemented in Erlang or Elixir) which may do processing for one or more external CloudI services (implemented in C/C++, Go, Haskell, Java, JavaScript, OCaml, Perl, PHP, Python, and/or Ruby)

Even if external communication doesn't need to scale, private cloud computing tasks (number crunching) can gain fault-tolerance and internal system scalability within CloudI.

Where should I find more information?

Please see the FAQ for more details.

INSTALLATION

Requirements

  • Erlang >= 19.3 (erlang /Ubuntu)
  • C++ (g++ /Ubuntu)
  • boost >= 1.36.0 (libboost-system-dev libboost-thread-dev libboost-dev /Ubuntu)

Optional (default="yes"):

  • Java >= 1.5 JDK
    • (default-jdk /Ubuntu)
    • Use the "--enable-java-support=no" configure flag to disable
  • JavaScript >= 0.12.18
    • (nodejs /Ubuntu)
    • Use the "--enable-javascript-support=no" configure flag to disable
  • Perl >= 5.10 (with Compress::Zlib)
    • (perl perl-modules /Ubuntu)
    • Use the "--enable-perl-support=no" configure flag to disable
  • PHP >= 7.0
    • (php /Ubuntu)
    • Use the "--enable-php-support=no" configure flag to disable
  • Python >= 2.7.0
    • (python3 python3-dev /Ubuntu)
    • Use the "--enable-python-support=no" and "--enable-python-c-support=no" configure flag to disable
  • Ruby >= 1.9.0
    • (ruby /Ubuntu)
    • Use the "--enable-ruby-support=no" configure flag to disable
  • GNU MP library
    • (libgmp-dev /Ubuntu)
    • Used in the hexpi (C++) integration test only ("--with-integration-tests=no" configure flag to disable)

Optional (default="no"):

  • Go >= 1.11
    • (golang /Ubuntu)
    • Use the "--enable-go-support" configure flag to enable
  • Haskell (GHC >= 7.10.3 and cabal-install >= 1.22)
    • (ghc cabal-install zlib1g-dev /Ubuntu)
    • Use the "--enable-haskell-support" configure flag to enable
  • OCaml >= 4.03.0
    • (ocaml /Ubuntu)
    • Use the "--enable-ocaml-support" configure flag to enable

Building

For configuration options, see FAQ: 3.2 - Installation Options.

cd src
./configure
make
sudo make install

Running

Within the installation directory the cloudi script controls CloudI.

To start CloudI:

sudo cloudi start

To stop CloudI:

sudo cloudi stop

INTEGRATION

See the Quick Start Guide or the API documentation

Integration points:

Dynamic Configuration and Monitoring:

Routing:

Maintained Services Excluded from this Repository:

Unmaintained Services Excluded from this Repository:

The default CloudI configuration can run the included integration tests if all the supported programming languages are enabled at configure time (they are by default) and the --with-integration-tests-ran configuration argument is used (to choose the src/cloudi_tests.conf.in file).

If the --with-integration-tests-ran configuration argument is not used, the more minimal CloudI configuration will be used instead (in the src/cloudi_minimal.conf.in file) to support basic things like the Quick Start Guide, the Dashboard and any tutorials or examples.

CONTACT

Michael Truog (mjtruog at protonmail dot com)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].