REACTIVE MICROSERVICES

Create distributed applications by breaking your application apart into decoupled services that can be built and scaled separately.

Reactive, Decentralized, Fast

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 Microservices library, peer-to-peer service registry and discovery based on gossip protocol; No single point-of-failure or bottlenecks.

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.

Transport

The Transport module is the communication layer of nodes and service. Its main goal is to deal with managing the message exchange.

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.

    ""