{"id":18706318,"url":"https://github.com/axonframework/extension-springcloud-sample","last_synced_at":"2025-04-12T10:20:55.349Z","repository":{"id":38108069,"uuid":"261152142","full_name":"AxonFramework/extension-springcloud-sample","owner":"AxonFramework","description":"Sample project showcasing Axon's Spring Cloud extension","archived":false,"fork":false,"pushed_at":"2025-03-24T08:46:32.000Z","size":474,"stargazers_count":12,"open_issues_count":0,"forks_count":4,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-03-24T09:40:01.508Z","etag":null,"topics":["axon-framework","discovery-client","messaging","sample","spring-cloud"],"latest_commit_sha":null,"homepage":null,"language":"Kotlin","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/AxonFramework.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","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":"2020-05-04T11:12:13.000Z","updated_at":"2025-03-24T08:46:29.000Z","dependencies_parsed_at":"2023-02-15T04:16:20.622Z","dependency_job_id":"7052a4aa-61d5-445d-87f8-90088978dfc8","html_url":"https://github.com/AxonFramework/extension-springcloud-sample","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/AxonFramework%2Fextension-springcloud-sample","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AxonFramework%2Fextension-springcloud-sample/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AxonFramework%2Fextension-springcloud-sample/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AxonFramework%2Fextension-springcloud-sample/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AxonFramework","download_url":"https://codeload.github.com/AxonFramework/extension-springcloud-sample/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248550623,"owners_count":21122934,"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":["axon-framework","discovery-client","messaging","sample","spring-cloud"],"created_at":"2024-11-07T12:13:47.907Z","updated_at":"2025-04-12T10:20:55.318Z","avatar_url":"https://github.com/AxonFramework.png","language":"Kotlin","readme":"Axon Framework - Spring Cloud Extension - GiftCard Sample\n=========================================================\n\nThis repository contains a sample project showcasing [Axon Framework](https://github.com/AxonFramework/AxonFramework) in conjunction with the [Spring Cloud Extension](https://github.com/AxonFramework/extension-springcloud). \nThe main aim is to show how the extension can be used to allow distributed command handling with various implementations of [Spring Cloud](https://spring.io/projects/spring-cloud). \n\nApplication overview\n--------------------\n\nThis sample project is a multi-module project using Maven profiles, written in Kotlin.\nThe profiles allow you to select the Spring Cloud implementation of your choice to see what specifics might come in to play when using it.\n\n### Base Domain\n\nThe base domain to be used in every profile is the `giftcard` module, which depends on the `axon-spring-boot-starter` and `axon-springcloud-spring-boot-starter` modules.\nTo interact with the domain it contains both a scheduled client and a REST client.\n\nBy default, scheduled command dispatching is turned on : this will simulate a running users that interact with the instance, sending commands. \nThis can be disabled with the `dispatching.enabled` property.\n\nYou can interact with the demo in multiple ways:\n - `RestClient` expose some endpoints : you can contact them using `curl` request\n - through`swagger-ui.html` api documentation (e.g., [http://localhost:8081/swagger-ui.html](http://localhost:8081/swagger-ui.html) )\n - for convenience to Intellij IDEA users, through the provided `requests.http`\n\nNote that all message-transitions are logged on INFO log level to show which node is handling a given command in a distributed set up. \n\n### Spring Cloud profiles\n\nThe Spring Cloud profiles which are currently present are:\n\n - **Spring Cloud Netflix / Eureka** - Uses [Spring Cloud Netflix'](https://spring.io/projects/spring-cloud-netflix) discovery mechanism called Eureka. \n When selecting this profile, the `eureka-client` and `eureka-server` modules will be toggled on.\n **Note** that Eureka as solution currently does not work. This will be fixed with extension release 4.3.1 under issue [#17](https://github.com/AxonFramework/extension-springcloud/issues/17).\n \nHow-to start up\n---------------\n\nFirst, select the profile you like to test.\nDepending on the profile the start-up process will differ:\n\n - **Spring Cloud Netflix / Eureka** - First, start up the `eureka-server`. \n The provided `application.properties` should be sufficient.\n \n - **Eureka Client** - You will need to start two or more `eureka-client` instances. When starting these it is required to have different `server.port` numbers, as well as provided the `node.number` property to keep them apart.\n Subsequently, you can toggle whether a node should have scheduled dispatching enabled with the `dispatching.enabled` property.\n \n\u003e **Intellij IDEA**\n\u003e\n\u003e A basic set of Intellij IDEA run configuration is provided in this project.\n\u003e They should be registered automatically if you open this repository through Intellij.\n\u003e If they aren't, you can find the `.xml` config files in the `~/.idea/runConfiguration` folder.\n \nYou can check the status using [Spring Eureka console](http://localhost:8761/) available by default on port 8761 : you should see two *GIFTCARD EUREKA CLIENT* instances registered to your Eureka server.\n\nContributing\n------------\n\nSome Spring Cloud implementations out there are not present as profiles within this sample.\nOther implementations can always be added to this repository and can be regarded as worthwhile contributions.\n\nWhen looking to provide a pull request for another such implementation, know that it suffices to provide just a client.\nDepending on the `giftcard` module gives you all the necessary Axon bits and pieces to distribute commands.\nRegardless, contributions to the `giftcard` module to expand its capabilities are also welcome. ","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faxonframework%2Fextension-springcloud-sample","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faxonframework%2Fextension-springcloud-sample","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faxonframework%2Fextension-springcloud-sample/lists"}