Skip to content
Ronen Nachmias edited this page Sep 16, 2017 · 24 revisions

Welcome to ScaleCube

ScaleCube is embeddable microservices framework for the rapid development of distributed, resilient, reactive applications that scales. It connects distributed microservices in a way that resembles a fabric when viewed collectively. It greatly simplifies and streamlines asynchronous programming and provides a tool-set for managing microservices architecture. ScaleCube has succeeded to find a way to achieve ease of development, performance, stability, and flexibility without a compromise.

ScaleCube Modules:

ScaleCube Services Features:

  • Provision and interconnect microservices as a unified system (cluster)
  • Async RPC with java-8 CompleteableFutures support
  • Reactive Streams support with RxJava.
  • No single-point-of-failure or single-point-of-bottleneck
  • Cluster aware and distributed
  • Modular, flexible deployment models and topology
  • Zero configuration, automatic peer-to-peer service discovery using gossip
  • Simple non-blocking, asynchronous programming model
  • Resilient due to failure detection, fault tolerance and elasticity
  • Routing and balancing strategies for both stateless and stateful services
  • Low latency and high throughput
  • Takes advantage of the JVM and scales over available cores
  • Embeddable to existing Java applications
  • Message Driven based on google-protocol-buffers
  • Natural Circuit-Breaker due to tight integration with scalecube-cluster failure detector.
  • Support Service instance tagging.

How Scalecube can help me?

Microservices architecture is not a silver bullet and introduces cross-cutting-concerns scale-cube was developed to deal with some of the issues introduced by micro-services architecture:

Developer tools/IDEs are oriented on building monolithic applications and don’t provide explicit support for developing distributed applications and Testing is more difficult.

with scalecube its possible to develop / tests / simulate distributed a applications within a single JVM instance scalecube so its still possible the regular IDE and existing development tools.

Developers must implement the inter-service communication mechanism.

ScaleCube supports inter-service communication in transparent way in the sense that developers code has very little boilerplate for inter-service communicating.

Implementing use cases that span multiple services requires careful coordination between the teams.

ScaleCube allows you to scale your teams as your micro-services architecture grows. managing the services contracts is very similar to the monolithic approach. in fact its possible to develop a monolithic first approach and only scale on demand. the decision to distribute a service is completely packaging issue with no code changes required.

ScaleCube Cluster:

provides a fault-tolerant decentralized peer-to-peer based cluster management service with no single point of failure or single point of bottleneck. It is based on an efficient and scalable implementations of cluster membership, gossip protocol and failure detector algorithms and consists of the same name components.

ScaleCube Transport:

provides a method to communicate between cluster members and exchange bi-directional communications. The transport component is based on netty that provides better throughput and lower latency communication.

Clone this wiki locally