{"id":13485775,"url":"https://github.com/scalecube/scalecube-services","last_synced_at":"2026-02-23T13:27:17.912Z","repository":{"id":36409523,"uuid":"40714460","full_name":"scalecube/scalecube-services","owner":"scalecube","description":"Microservices library - scalecube-services is a high throughput, low latency reactive microservices library built to scale. It features: API-Gateways, service-discovery, service-load-balancing, the architecture supports plug-and-play service communication modules and features. built to provide performance and low-latency real-time stream-processing","archived":false,"fork":false,"pushed_at":"2026-02-18T13:34:09.000Z","size":7289,"stargazers_count":638,"open_issues_count":16,"forks_count":109,"subscribers_count":47,"default_branch":"master","last_synced_at":"2026-02-18T17:37:13.250Z","etag":null,"topics":["actor-model","aeron","api-gateway","backpressure","cluster","cluster-membership","distributed-systems","gossip-protocol","ipc","k8s","low-latency","microservices","multicast-streams","reactive-microservices","reactive-streams","reactor-aeron","reactor-netty","service-discovery","service-mesh","swim-protocol"],"latest_commit_sha":null,"homepage":"http://scalecube.github.io/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/scalecube.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"custom":["https://www.om2.com/","https://exberry.io/"]}},"created_at":"2015-08-14T12:44:39.000Z","updated_at":"2026-02-12T09:29:47.000Z","dependencies_parsed_at":"2024-01-03T01:21:05.530Z","dependency_job_id":"c68ee0f1-b257-49f3-b2aa-f0f82cd94a61","html_url":"https://github.com/scalecube/scalecube-services","commit_stats":{"total_commits":3597,"total_committers":36,"mean_commits":99.91666666666667,"dds":0.6074506533222129,"last_synced_commit":"b0cc78511b5b18a3557f24b81060be63f958c618"},"previous_names":["scalecube/scalecube","servicefabric/servicefabric"],"tags_count":264,"template":false,"template_full_name":null,"purl":"pkg:github/scalecube/scalecube-services","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scalecube%2Fscalecube-services","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scalecube%2Fscalecube-services/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scalecube%2Fscalecube-services/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scalecube%2Fscalecube-services/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scalecube","download_url":"https://codeload.github.com/scalecube/scalecube-services/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scalecube%2Fscalecube-services/sbom","scorecard":{"id":472663,"data":{"date":"2025-08-11","repo":{"name":"github.com/scalecube/scalecube-services","commit":"e190d49bcacd4b69bc3d8fd30168dcad08cb0d3e"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.4,"checks":[{"name":"Code-Review","score":0,"reason":"Found 1/27 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":6,"reason":"8 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 6","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/branch-ci.yml:1","Warn: no topLevel permission defined: .github/workflows/pre-release-ci.yml:1","Warn: no topLevel permission defined: .github/workflows/release-ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/branch-ci.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/scalecube/scalecube-services/branch-ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/branch-ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/scalecube/scalecube-services/branch-ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/branch-ci.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/scalecube/scalecube-services/branch-ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pre-release-ci.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/scalecube/scalecube-services/pre-release-ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pre-release-ci.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/scalecube/scalecube-services/pre-release-ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pre-release-ci.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/scalecube/scalecube-services/pre-release-ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pre-release-ci.yml:37: update your workflow using https://app.stepsecurity.io/secureworkflow/scalecube/scalecube-services/pre-release-ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release-ci.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/scalecube/scalecube-services/release-ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release-ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/scalecube/scalecube-services/release-ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release-ci.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/scalecube/scalecube-services/release-ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release-ci.yml:53: update your workflow using https://app.stepsecurity.io/secureworkflow/scalecube/scalecube-services/release-ci.yml/master?enable=pin","Info:   0 out of  11 GitHub-owned GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/pre-release-ci.yml:8"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 13 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-19T14:21:46.023Z","repository_id":36409523,"created_at":"2025-08-19T14:21:46.023Z","updated_at":"2025-08-19T14:21:46.023Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29725287,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-22T19:57:12.410Z","status":"ssl_error","status_checked_at":"2026-02-22T19:54:50.710Z","response_time":110,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["actor-model","aeron","api-gateway","backpressure","cluster","cluster-membership","distributed-systems","gossip-protocol","ipc","k8s","low-latency","microservices","multicast-streams","reactive-microservices","reactive-streams","reactor-aeron","reactor-netty","service-discovery","service-mesh","swim-protocol"],"created_at":"2024-07-31T18:00:31.512Z","updated_at":"2026-02-23T13:27:17.873Z","avatar_url":"https://github.com/scalecube.png","language":"Java","funding_links":["https://www.om2.com/","https://exberry.io/"],"categories":["Install from Source","项目","HarmonyOS","Projects","开发框架"],"sub_categories":["Service Discovery","分布式应用程序","Windows Manager","Distributed Applications"],"readme":"# scalecube-services\n[![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.scalecube/scalecube-services-api/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.scalecube/scalecube-services-api)\n[![SourceSpy Dashboard](https://sourcespy.com/shield.svg)](https://sourcespy.com/github/scalecubescalecubeservices/)\n\n## MICROSERVICES 2.0\n\nScaleCube is a microservices library designed for high throughput and lower latency, catering to scalable and reactive system needs. It excels in API gateway integration, service discovery, and load balancing, employing the SWIM protocol for efficient cluster management. Its modular architecture supports various pluggable communication modules, enabling seamless and flexible deployments. With a focus on real-time stream processing and fault tolerance, ScaleCube ensures optimal performance and reliability for distributed microservices environments.\n\nReactive microservices communicate via streams, utilising asynchronous data flows to exchange information between services. This approach enhances system responsiveness and scalability by allowing services to process and react to data as it arrives, without blocking operations.\n\nIn practice, this involves using technologies and protocols that support reactive streams, such as Reactor. These tools enable the development of highly responsive, resilient systems capable of handling dynamic workloads efficiently.\n\n\u003ctable text-align=\"top\"\u003e\n \u003ctr\u003e\n   \u003ctd\u003e\n     A fully mesh, brokerless architecture is particularly beneficial for high-performing, reliable, and scalable applications.\n     \u003cbr\u003e It ensures continuous availability and responsiveness, making it ideal for real-time data processing, large-scale distributed systems, and environments where minimizing latency matters.\n\u003cbr\u003e\u003cbr\u003e\nScaleCube’s fully mesh architecture delivers a robust, efficient, and scalable solution for modern microservices applications, enhancing system performance and reliability without the need for complex middleware setups.\n  \u003c/td\u003e\n  \u003ctd\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/1706296/43058327-b4a0147e-8e4f-11e8-9999-68c4ec99632e.gif\"\u003e\n  \u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\nScaleCube Services Features:\n\n* Provision and interconnect microservices peers in a cluster\n* Fully Distributed with No single-point-of-failure or single-point-of-bottleneck\n* Fast - Low latency and high throughput\n* Scaleable over- cores, jvms, clusters, regions.\n* Built-in Service Discovery and service routing\n* Zero configuration, automatic peer-to-peer service discovery using SWIM cluster membership protocol\n* Simple non-blocking, asynchronous programming model\n* Reactive Streams support.\n  * Fire And Forget - Send and not wait for a reply\n  * Request Response - Send single request and expect single reply\n  * Request Stream - Send single request and expect stream of responses.\n  * Request bidirectional - send stream of requests and expect stream of responses.\n* Built-in failure detection, fault tolerance, and elasticity\n* Routing and balancing strategies for both stateless and stateful services\n* Embeddable into existing applications\n* Natural Circuit-Breaker via scalecube-cluster discovery and failure detector.\n* Support Service instance tagging.\n* Support Service discovery partitioning using hierarchy of namespaces in a multi-cluster deployments.\n* Modular, flexible deployment models and topology\n* pluggable api-gateway providers (http / websocket / rsocket)\n* pluggable service transports (tcp / aeron / rsocket)\n* pluggable encoders (json, SBE, Google protocol buffers)\n* pluggable service security authentication and authorization providers.\n\nUser Guide:\n\n* [Services Overview](http://scalecube.github.io/services.html)\n* [Defining Services](http://scalecube.github.io/user-reference/services/DefineService.html)\n* [Implementing services](http://scalecube.github.io/user-reference/services/ServiceImplementation.html)\n* [Provisioning Clustered Services](http://scalecube.github.io/user-reference/services/ProvisionClusterServices.html)\n* [Consuming services](http://scalecube.github.io/user-reference/services/ConsumingServices.html)\n\n\nBasic Usage:\n\nThe example provisions 2 cluster nodes and making a remote interaction.\n1. seed is a member node and provision no services of its own.\n2. then microservices variable is a member that joins seed member and provision GreetingService instance.\n3. finally from seed node - create a proxy by the GreetingService api and send a greeting request.\n\n```java\n// service definition\n@Service(\"io.scalecube.Greetings\")\npublic interface GreetingsService {\n  @ServiceMethod(\"sayHello\")\n\t  Mono\u003cGreeting\u003e sayHello(String name);\n\t}\n}\n// service implementation\npublic class GreetingServiceImpl implements GreetingsService {\n @Override\n public Mono\u003cGreeting\u003e sayHello(String name) {\n   return Mono.just(new Greeting(\"Nice to meet you \" + name + \" and welcome to ScaleCube\"));\n\t}\n}\n\n//1. ScaleCube Node node with no members (container 1)\nMicroservices seed = Microservices.builder()\n  .discovery(\"seed\", ScalecubeServiceDiscovery::new)\n\t.transport(RSocketServiceTransport::new)\n\t.startAwait();\n\n// get the address of the seed member - will be used to join any other members to the cluster.\nfinal Address seedAddress = seed.discovery(\"seed\").address();\n\n//2. Construct a ScaleCube node which joins the cluster hosting the Greeting Service (container 2)\nMicroservices serviceNode = Microservices.builder()\n  .discovery(\"seed\", ep -\u003e new ScalecubeServiceDiscovery(ep)\n\t\t.membership(cfg -\u003e cfg.seedMembers(seedAddress)))\n\t.transport(RSocketServiceTransport::new)\n\t.services(new GreetingServiceImpl())\n\t.startAwait();\n\n//3. Create service proxy (can be created from any node or container in the cluster)\n//   and Execute the service and subscribe to incoming service events\nseed.call().api(GreetingsService.class)\n  .sayHello(\"joe\").subscribe(consumer -\u003e {\n    System.out.println(consumer.message());\n  });\n\n// await all instances to shutdown.\nMono.whenDelayError(seed.shutdown(), serviceNode.shutdown()).block();\n```\n\nBasic Service Example:\n\n\n* RequestOne: Send single request and expect single reply\n* RequestStream: Send single request and expect stream of responses.\n* RequestBidirectional: send stream of requests and expect stream of responses.\n\nA service is nothing but an interface declaring what methods we wish to provision at our cluster.\n\n```java\n\n@Service\npublic interface ExampleService {\n\n  @ServiceMethod\n  Mono\u003cString\u003e sayHello(String request);\n\n  @ServiceMethod\n  Flux\u003cMyResponse\u003e helloStream();\n\n  @ServiceMethod\n  Flux\u003cMyResponse\u003e helloBidirectional(Flux\u003cMyRequest\u003e requests);\n}\n\n```\n\n## API-Gateway:\n\nAvailable api-gateways are [rsocket](/services-gateway-rsocket), [http](/services-gateway-http) and [websocket](/services-gateway-websocket)\n\nBasic API-Gateway example:\n\n```java\n\n    Microservices.builder()\n        .discovery(options -\u003e options.seeds(seed.discoveryAddress()))\n        .services(...) // OPTIONAL: services (if any) as part of this node.\n\n        // configure list of gateways plugins exposing the apis\n        .gateway(options -\u003e new WebsocketGateway(options.id(\"ws\").port(8080)))\n        .gateway(options -\u003e new HttpGateway(options.id(\"http\").port(7070)))\n        .gateway(options -\u003e new RSocketGateway(options.id(\"rsws\").port(9090)))\n\n        .startAwait();\n\n        // HINT: you can try connect using the api sandbox to these ports to try the api.\n        // https://scalecube.github.io/api-sandbox/app/index.html\n```\n\n### Maven\n\nWith scalecube-services you may plug-and-play alternative providers for Transport,Codecs and discovery.\nScalecube is using ServiceLoader to load providers from class path,\n\nYou can think about scalecube as slf4j for microservices - Currently supported SPIs:\n\n**Transport providers:**\n\n* scalecube-services-transport-rsocket: using rsocket to communicate with remote services.\n\n**Message codec providers:**\n\n* scalecube-services-transport-jackson: using Jackson to encode / decode service messages. https://github.com/FasterXML\n\n**Service discovery providers:**\n\n* scalecube-services-discovery: using scalecue-cluster do locate service Endpoint within the cluster\n   https://github.com/scalecube/scalecube-cluster\n\n\nBinaries and dependency information for Maven can be found at http://search.maven.org.\n\nhttps://mvnrepository.com/artifact/io.scalecube\n\nTo add a dependency on ScaleCube Services using Maven, use the following:\n\n[![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.scalecube/scalecube-services-api/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.scalecube/scalecube-services-api)\n\n```xml\n\n \u003cproperties\u003e\n   \u003cscalecube.version\u003e2.x.x\u003c/scalecube.version\u003e\n \u003c/properties\u003e\n\n \u003c!-- -------------------------------------------\n   scalecube core and api:\n ------------------------------------------- --\u003e\n\n \u003c!-- scalecube apis   --\u003e\n \u003cdependency\u003e\n  \u003cgroupId\u003eio.scalecube\u003c/groupId\u003e\n  \u003cartifactId\u003escalecube-services-api\u003c/artifactId\u003e\n  \u003cversion\u003e${scalecube.version}\u003c/version\u003e\n \u003c/dependency\u003e\n\n \u003c!-- scalecube services module   --\u003e\n \u003cdependency\u003e\n  \u003cgroupId\u003eio.scalecube\u003c/groupId\u003e\n  \u003cartifactId\u003escalecube-services\u003c/artifactId\u003e\n  \u003cversion\u003e${scalecube.version}\u003c/version\u003e\n \u003c/dependency\u003e\n\n\n \u003c!--\n\n     Plugins / SPIs: bellow a list of providers you may choose from. to constract your own configuration:\n     you are welcome to build/contribute your own plugins please consider the existing ones as example.\n\n  --\u003e\n\n \u003c!-- scalecube transport providers:  --\u003e\n \u003cdependency\u003e\n  \u003cgroupId\u003eio.scalecube\u003c/groupId\u003e\n  \u003cartifactId\u003escalecube-services-transport-rsocket\u003c/artifactId\u003e\n  \u003cversion\u003e${scalecube.version}\u003c/version\u003e\n \u003c/dependency\u003e\n```\n\n----\n\n## Sponsored by:\n* [OM2](https://www.om2.com/)\n* [exberry.io](https://exberry.io/)\n\n### We Hire at exberry.io\nhttps://exberry.io/career/\n\n### website\nhttps://scalecube.github.io/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscalecube%2Fscalecube-services","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscalecube%2Fscalecube-services","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscalecube%2Fscalecube-services/lists"}