Github Project

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. Our project 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 single point of bottleneck. It does this using gossip protocol and an scalable and efficient failure detection algorithm.

Transport

The Transport module is communication layer of nodes and service. its main goal is to deal with managing 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 Test 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 to use your favorite language, tools and existing knowledge.

  • IT'S MODULAR

    We design the toolset so it can be used or extend 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 open source by default free to use under apache Apache License Version 2.0.

  • IT'S REACTIVE

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

Features

Microservices

ScaleCube Microservices is a message-driven and asynchronous by default, built to scale due to it's the peer-to-peer nature. empowered by ScaleCube-Cluster gossip capabilities that aims to answer the cross-cutting-concerns of a microservices applications such as; service discovery, location transparency, fault-tolerance via real time failure-detection. ScaleCube Microservices provides fluent java-8 functional APIs and Completable Futures 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 entry point to the service component. With ScaleCube Microservices its possible to provision services within same process, many process on same hardware or many process on many hardwares this enables ease of development and testing of a distributed applications. No need to worry about the final topology and sizing hardware 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 running Java implementation of SWIM protocol for distributed group membership, with a few minor adaptations. It uses suspicion mechanism over the failure detector events. Also it uses separate membership updates dissemination component (gossip protocol). But it 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 the configuration provided well known server addresses (seed members). And also it 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

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

    ""