{"id":15211265,"url":"https://github.com/yildizmy/bank-account-api","last_synced_at":"2026-03-07T23:30:47.533Z","repository":{"id":248188537,"uuid":"824025684","full_name":"yildizmy/bank-account-api","owner":"yildizmy","description":"CQRS and Event Sourcing demo with Axon Framework \u0026 Axon Server","archived":false,"fork":false,"pushed_at":"2025-01-28T18:15:54.000Z","size":678,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-10T22:59:39.175Z","etag":null,"topics":["axon","axon-framework","axon-server","bank","bank-account","bank-account-management-system","cqrs","cqrs-architectural-pattern","cqrs-architecture","cqrs-pattern","ddd-cqrs","event-source","event-sourcing","event-sourcing-and-cqrs","event-store","java","rest-api","spring-boot","spring-data-jpa","spring-mvc"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yildizmy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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":"2024-07-04T08:08:12.000Z","updated_at":"2025-01-28T18:15:57.000Z","dependencies_parsed_at":"2024-07-15T11:04:31.028Z","dependency_job_id":"c8706669-7489-4a7a-8f4c-af1b230ad429","html_url":"https://github.com/yildizmy/bank-account-api","commit_stats":{"total_commits":76,"total_committers":1,"mean_commits":76.0,"dds":0.0,"last_synced_commit":"c37678e24c1422fce5712456a2d891467ac5a260"},"previous_names":["yildizmy/bank-account-api"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/yildizmy/bank-account-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yildizmy%2Fbank-account-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yildizmy%2Fbank-account-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yildizmy%2Fbank-account-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yildizmy%2Fbank-account-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yildizmy","download_url":"https://codeload.github.com/yildizmy/bank-account-api/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yildizmy%2Fbank-account-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30237329,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-07T23:24:20.706Z","status":"ssl_error","status_checked_at":"2026-03-07T23:21:10.486Z","response_time":53,"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":["axon","axon-framework","axon-server","bank","bank-account","bank-account-management-system","cqrs","cqrs-architectural-pattern","cqrs-architecture","cqrs-pattern","ddd-cqrs","event-source","event-sourcing","event-sourcing-and-cqrs","event-store","java","rest-api","spring-boot","spring-data-jpa","spring-mvc"],"created_at":"2024-09-28T08:21:44.334Z","updated_at":"2026-03-07T23:30:47.501Z","avatar_url":"https://github.com/yildizmy.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"## bank-account-api\nSpring Boot demo application showcasing CQRS/Event Sourcing with Axon Framework and Axon Server.\n\n\u003cbr/\u003e\n\n\u003cimg src=\"src/main/resources/docs/images/cqrs_design_pattern.png\" alt=\"cqrs design pattern\" width=\"793\"/\u003e\n\n\u003cbr/\u003e\n\n\n### Description\nThis project demonstrates CQRS (Command Query Responsibility Segregation) and Event Sourcing patterns using the Axon Framework and Axon Server.\n\nWhat is CQRS?\u003cbr/\u003e\nCQRS is a pattern that separates commands (write operations) from queries (read operations). By decoupling these two aspects of an application, CQRS helps to scale and optimize each operation independently.\n\nWhat is Event Sourcing?\u003cbr/\u003e\nEvent Sourcing is a pattern where state changes are stored as a sequence of events rather than as direct updates to the application's state. This approach provides a complete audit trail of all changes and enables rebuilding the current state by replaying events.\n\nAxon Framework\u003cbr/\u003e\nAxon Framework is a powerful library for implementing CQRS and Event Sourcing in Java applications. It provides abstractions for handling commands, events, and queries, and simplifies the development of scalable and maintainable systems.\n\nAxon Server\u003cbr/\u003e\nAxon Server is a dedicated server for managing commands, events, and queries. It handles event storage, query management, and provides a centralized hub for the CQRS infrastructure.\n\n\u003cbr/\u003e\n\nFeatures of This Project\n* CQRS Implementation: Demonstrates how to separate command and query responsibilities.\n* Event Sourcing: Shows how to use events to capture state changes.\n* Axon Framework Integration: Utilizes Axon Framework to manage commands, events, and queries.\n* Axon Server Setup: Includes instructions for setting up and connecting to Axon Server.\n\n\u003cbr/\u003e\n\n\n### Getting Started\n\nIn order to run and test the application, see details on [How to run?](src/main/resources/docs/how_to_run.md) and [How to test?](src/main/resources/docs/how_to_test.md) sections.\n\n\u003cbr/\u003e\n\n\n### Dependencies\n\n* Spring Boot\n* Spring Web\n* Spring Data JPA\n* Axon Framework\n* Lombok\n* H2 Database\n\n\u003cbr/\u003e\n\n\n### Documentation\nFor further reference, please consider the following sections:\n\n* [Spring Boot](https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/)\n* [Spring Data JPA](https://docs.spring.io/spring-data/jpa/docs/current/reference/html/)\n* [Command Query Responsibility Segregation (CQRS)](https://microservices.io/patterns/data/cqrs.html)* \n* [Axon Framework](https://www.axoniq.io/products/axon-framework)\n* [Axon Server](https://www.axoniq.io/products/axon-server)\n\n\u003cbr/\u003e\n\n\n### Guides\nThe following guides illustrate how to use some features concretely:\n\n* [Building a RESTful Web Service](https://spring.io/guides/gs/rest-service/)\n* [Serving Web Content with Spring MVC](https://spring.io/guides/gs/serving-web-content/)\n* [Creating Asynchronous Methods](https://spring.io/guides/gs/async-method)\n* [Building REST services with Spring](https://spring.io/guides/tutorials/rest/)\n* [Accessing Data with JPA](https://spring.io/guides/gs/accessing-data-jpa/)\n\n\u003cbr/\u003e\n\n\n### Additional Links\nThese additional references should also help you:\n\n* [Gradle Build Scans – insights for your project's build](https://scans.gradle.com#gradle)\n\n\u003cbr/\u003e\n\n\n### Version History\n\n* v1.0.0 Initial Release\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyildizmy%2Fbank-account-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyildizmy%2Fbank-account-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyildizmy%2Fbank-account-api/lists"}