REACTIVE MICROSERVICES

Apache-2.0

An open-source project that is focused on streamlining reactive-programming of Microservices Reactive-systems that scale, built by developers for developers.

Reactive, SERVICE-MESH

Welcome to ScaleCube open source project. Our passion is to build highly scalable low latency, distributed, reactive systems that scales. ScaleCube consists of a modular set of tools that targets the main cross-cutting concerns of distributed computing and Microservices.

Microservices

ScaleCube provides a low latency Reactive Service-Mesh, with a reactive network protocol, to create a unified microservices ecosystem. Equipped with a transparent and fault-tolerance Distributed-service-discovery powered by scalecube-cluster algorithms.

Cluster

Cluster provides a fault-tolerant decentralized peer-to-peer based cluster membership service with no single point of failure or bottleneck. It does this using gossip protocol and a scalable and efficient failure detection algorithm.

API-Gateway

Automatically discover and balance accross scalecube-services as they appear in the cluster and transparently enable for consumption by clients. for example:
HTTP / WebSocket / RSocket.
ScaleCube API-Gateways supports reactive interaction models with service endpoints. such as request-reply, request-stream and bi-directional communication.

Transport

scalecube-transport is a plugable communication layer for cluster nodes and services. it provides local and remote reactive-streams communication-models supporting request-response, request-stream, request-bidirectional. scalecube-transport supports plug-in decoders and plug-in communication providers.

Why SCALECUBE

We build a toolset to address cross-cutting concerns of distributed microservices-based systems

  • IT'S SCALEABLE

    Fully distributed and decentralized by nature, no bottelnecks or single point of faliures.

  • IT'S UN-OPINIONATED

    Continue to develop and dest pure java. ScaleCube microservices is a library not a framework.

  • IT'S FAST

    Low-latency, high-throghput, lock-free, async from the ground up.

  • IT'S SIMPLE

    Develop and test now, provision and scale later. Continue using your favorite language, tools and existing knowledge.

  • IT'S MODULAR

    We design the toolset so it can be used or be extended to only what you need.

  • IT'S LIGHTWEIGHT

    Have minimal impact to your application, continue to develop with the tools you already know and love.

  • IT'S OPEN SOURCE

    ScaleCube is an open source project and thus free to use under the Apache License Version 2.0.

  • IT'S REACTIVE

    Low latency, lock-free share-nothing tools, built to scale.

Features

Microservices

ScaleCube Microservices is message-driven and asynchronous by default, it is built to scale due to its peer-to-peer nature. Empowered by the ScaleCube-Cluster gossip capabilities which aims to answer the cross-cutting-concerns of a microservices applications such as: service discovery, location transparency and fault-tolerance via real time failure-detection. ScaleCube Microservices provides fluent java-8 functional APIs and Reactor Project Mono benefits. The ScaleCube Microservices are lightweight and embeddable in-order to reduce restrictions regards service implementation. It only requires a simple declaration of the Service APIs as an entry point to the service component. With ScaleCube Microservices its possible to provision services within the same process, multiple processes on the same hardware or multiple processes on multiple hardwares thus enabling ease of development and testing of a distributed applications. There is no need to worry about the final topology and hardware sizing at the development stage. Write once scale anywhere.

Click this link to learn more about ScaleCube Services
User Guide
  • Overview
  • Defining services
  • Implementing services
  • Provisioning clustered services
  • Consuming services
  • Implementing router
  • Using service dispatchers
  • Cluster

    Distributed peer-to-peer applications require weakly-consistent knowledge of cluster membership information at all participating members. ScaleCube provides scalable and efficient implementation of cluster membership algorithm. Cluster Membership component is responsible for managing information about existing members of the cluster. It is a running Java implementation of SWIM protocol for distributed group membership, with a few minor adaptations. It uses suspicion mechanism over the failure detector events, accompanied by a separate membership updates dissemination component (gossip protocol).
    The Cluster Membership also introduces a separate gossip protocol component instead of piggybacking membership updates on top of failure detector messages. It is done in order to reuse gossip component for other platform events and have more fine grained control over time intervals used for gossiping and failure detection pinging. New members to the cluster joins via well known configured server addresses (seed members).
    The Cluster Membership also extends SWIM protocol with the introduction of periodic SYNC messages in order to improve recovery from network partitioning and message losses.

    Click this link to learn more about ScaleCube Cluster
    Transport

    The Transport component is responsible of maintaining point-to-point connections between the members in the cluster. It is used as a backbone for asynchronous messaging between the members of the cluster.

    ""