{"id":13565293,"url":"https://github.com/asc-lab/java-cqrs-intro","last_synced_at":"2025-04-12T18:50:07.415Z","repository":{"id":44392480,"uuid":"165799262","full_name":"asc-lab/java-cqrs-intro","owner":"asc-lab","description":"Examples of implementation CQRS with Event Sourcing - evolutionary approach","archived":false,"fork":false,"pushed_at":"2024-10-17T16:22:54.000Z","size":366,"stargazers_count":210,"open_issues_count":3,"forks_count":62,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-04-03T22:07:23.041Z","etag":null,"topics":["cqrs","java-11"],"latest_commit_sha":null,"homepage":null,"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/asc-lab.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-15T06:42:37.000Z","updated_at":"2025-02-25T15:32:09.000Z","dependencies_parsed_at":"2024-12-27T15:07:48.841Z","dependency_job_id":"0bfbcba4-7ea7-43fc-9d34-2b1812499f8d","html_url":"https://github.com/asc-lab/java-cqrs-intro","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/asc-lab%2Fjava-cqrs-intro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asc-lab%2Fjava-cqrs-intro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asc-lab%2Fjava-cqrs-intro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asc-lab%2Fjava-cqrs-intro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/asc-lab","download_url":"https://codeload.github.com/asc-lab/java-cqrs-intro/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248618219,"owners_count":21134199,"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":["cqrs","java-11"],"created_at":"2024-08-01T13:01:44.006Z","updated_at":"2025-04-12T18:50:07.385Z","avatar_url":"https://github.com/asc-lab.png","language":"Java","funding_links":[],"categories":["Java","Sample Projects"],"sub_categories":["JVM languages"],"readme":"# CQRS and Event Sourcing Intro for Developers\n\nWe live in a world of dynamically changing technologies. New ways of architecturing our solutions, new frameworks and libraries seem to appear on almost daily basis. \n\n\n**But good software engineering is not about fancy frameworks and solutions aggressively promoted by their vendors.** It is not about doing something because Netflix or Google did it. It is about taking well-thought-out decisions based on facts and knowledge. That’s why it is important to be familiar basic architectural concepts like CQRS. It is one of the tools we use in our software house every day. We mentioned CQRS in the article which is part of the series about [Microservices on .NET Core](https://altkomsoftware.pl/en/blog/building-microservices-on-net-core-1/), but it was presented from technical perspective and here we want to focus on basics concepts explanation with visualisation and examples.\n\n\n[Check our article!](https://altkomsoftware.pl/en/blog/cqrs-event-sourcing/)\n\n## No CQRS\n\n\u003cp align=\"center\"\u003e\n    \u003cimg alt=\"No CQRS\" src=\"https://raw.githubusercontent.com/asc-lab/java-cqrs-intro/master/readme-images/1_no_cqrs.png\" /\u003e\n\u003c/p\u003e\n\n## Separate Commands and Queries\n\n\u003cp align=\"center\"\u003e\n    \u003cimg alt=\"Separate Commands and Queries\" src=\"https://raw.githubusercontent.com/asc-lab/java-cqrs-intro/master/readme-images/2_separe_commands_queries.png\" /\u003e\n\u003c/p\u003e\n\n## Separate Models Commands and Queries\n\n\u003cp align=\"center\"\u003e\n    \u003cimg alt=\"Separate Models Commands and Queries\" src=\"https://raw.githubusercontent.com/asc-lab/java-cqrs-intro/master/readme-images/3_separate_models_commands_queries.png\" /\u003e\n\u003c/p\u003e\n\n## Separate Storage Engines\n\n\u003cp align=\"center\"\u003e\n    \u003cimg alt=\"Separate Storage Engines\" src=\"https://raw.githubusercontent.com/asc-lab/java-cqrs-intro/master/readme-images/4_separate_storage_engines.png\" /\u003e\n\u003c/p\u003e\n\n## Event Sourcing\n\n\u003cp align=\"center\"\u003e\n    \u003cimg alt=\"Event Sourcing\" src=\"https://raw.githubusercontent.com/asc-lab/java-cqrs-intro/master/readme-images/5_event_sourcing.png\" /\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasc-lab%2Fjava-cqrs-intro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fasc-lab%2Fjava-cqrs-intro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasc-lab%2Fjava-cqrs-intro/lists"}