Develop pure java microservices with scalecube-services, an Un-Opinionated Library. Create distributed applications by breaking your application apart into decoupled services that can be built and scaled separately.
ScaleCube Microservices is a message-driven and asynchronous by default, built to scale due to it's the peer-to-peer nature. powered by scalecube-cluster gossip capabilities to answer the cross-cutting-concerns such as; canary testing, service discovery, location transparency, fault-tolerance and 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 gives enables ease of development and testing of a distributed system. ScaleCube Microservices features:
A Lightweight system component running in it's own process. Built around business capabilities and independently deployable by fully automated deployment machinery. Isolated, Distributed and have well bounded context communicates via APIs. member in a microservices cluster, discoverable and aware of faliure
With Scalecube Microservices each Microservice self-register at the cluster and utilizes the cluster gossip-protocol to declare and register so it can transparently communicate with it's peer microservices that share the same cluster group.
Microservice may have more then one instance or version of an instance at the cluster the routing strategy is resposible to select the relevant microservice instance when invoking a service. it can be but not limited to: Round-Rubin, Random Selection, Session based selection ect.
Microservices are message driven and communicate via well defined service interface APIs from the consumer side a proxy is a client to a microservices generated from the Microservice interface.
The ScaleCube Services is hosted on Maven Central. In order to use it just add dependency on the latest version in your pom.xml file:
<dependency> <groupId>io.scalecube</groupId> <artifactId>scalecube-services<artifactId> <version>1.0.0<version> </dependency>