{"id":20180873,"url":"https://github.com/scalecube/getting-started","last_synced_at":"2025-04-10T05:09:41.285Z","repository":{"id":75143932,"uuid":"167326732","full_name":"scalecube/getting-started","owner":"scalecube","description":"hello world examples of using scalecube  to get started building high-speed reactive microservices","archived":false,"fork":false,"pushed_at":"2019-02-08T06:27:35.000Z","size":24,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-04-10T05:09:37.987Z","etag":null,"topics":["helloworld","scalecube-services"],"latest_commit_sha":null,"homepage":"http://scalecube.io","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"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":null,"license":null,"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}},"created_at":"2019-01-24T07:56:11.000Z","updated_at":"2019-11-02T09:23:34.000Z","dependencies_parsed_at":"2023-06-05T13:48:08.746Z","dependency_job_id":null,"html_url":"https://github.com/scalecube/getting-started","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scalecube%2Fgetting-started","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scalecube%2Fgetting-started/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scalecube%2Fgetting-started/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scalecube%2Fgetting-started/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scalecube","download_url":"https://codeload.github.com/scalecube/getting-started/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248161273,"owners_count":21057555,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["helloworld","scalecube-services"],"created_at":"2024-11-14T02:33:19.457Z","updated_at":"2025-04-10T05:09:41.273Z","avatar_url":"https://github.com/scalecube.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Getting started\n\n1. define java service dsl using interface.\n\n```java\n@Service(\"greeting\")\npublic interface GreetingService {\n  \n  @ServiceMethod(\"once\")\n  Mono\u003cString\u003e sayHello(String name);\n  \n  @ServiceMethod(\"many\")\n  Flux\u003cString\u003e sayHellos(String name);\n\n  @ServiceMethod(\"timer\")\n  Flux\u003cString\u003e timerHello(String name);\n  \n}\n```\n\n2. implement the service dsl.\n\n```java\npublic class SimpleGreetingService implements GreetingService {\n\n  @Override\n  public Mono\u003cString\u003e sayHello(String name) {\n    return Mono.just(\"greeting to: \"+ name);\n  }\n\n  @Override\n  public Flux\u003cString\u003e sayHellos(String name) {\n    return Flux.range(0, 3).map(i -\u003e \"greeting to: \" + name + \"-\" + i);\n  }\n\n  @Override\n  public Flux\u003cString\u003e timerHello(String name) {\n    return Flux.interval(Duration.ofSeconds(1)).map(i -\u003e \"greeting to: \" + name + \"-\" + i);\n  }\n  \n}\n```\n\n3. running the service.\n\n- RequestResponseMain \n- RequestStreamMain\n- GreetingServiceMain and ServiceGatewayMain\n\n4. Api-Sandbox:\n4.1. open in browser: http://scalecube.io/api-sandbox/app/index.html\n\n4.2. click settings and choose Rsocket and set url ws://localhost:9090\n\n![image](https://user-images.githubusercontent.com/1706296/51670553-929d8980-1fcf-11e9-8c25-581381120844.png)\n\n4.3. input json request and click send:\n\nselect:\n\n![image](https://user-images.githubusercontent.com/1706296/51670893-5dde0200-1fd0-11e9-97f5-da18392f805e.png)\n\nsend:\n![image](https://user-images.githubusercontent.com/1706296/51670736-f4f68a00-1fcf-11e9-9155-9573d86f069c.png)\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscalecube%2Fgetting-started","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscalecube%2Fgetting-started","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscalecube%2Fgetting-started/lists"}