{"id":19656161,"url":"https://github.com/daggerok/webflux-cqrs-es","last_synced_at":"2026-04-17T04:31:38.217Z","repository":{"id":151042197,"uuid":"174042818","full_name":"daggerok/webflux-cqrs-es","owner":"daggerok","description":"Implementing eventsourcing using JPA as event store. JPA JSON conversion. Spring Boot. Gradle Kotlin DSL. H2 tcp database, etc...","archived":false,"fork":false,"pushed_at":"2019-03-06T01:16:23.000Z","size":71,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-11-22T04:03:37.057Z","etag":null,"topics":["auditing","audition","es","eventsourcing","gradle-kotlin-dsl","gradle-plugin-kotlin","h2-console","h2-database","h2-gradle-run","inheritance","jpa","json","spring-data-jpa"],"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/daggerok.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-03-06T00:40:05.000Z","updated_at":"2022-08-04T13:15:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"1e11119a-fddb-4357-a9f9-c34a1e66ae53","html_url":"https://github.com/daggerok/webflux-cqrs-es","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/daggerok/webflux-cqrs-es","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daggerok%2Fwebflux-cqrs-es","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daggerok%2Fwebflux-cqrs-es/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daggerok%2Fwebflux-cqrs-es/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daggerok%2Fwebflux-cqrs-es/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/daggerok","download_url":"https://codeload.github.com/daggerok/webflux-cqrs-es/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daggerok%2Fwebflux-cqrs-es/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31915077,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T18:22:33.417Z","status":"online","status_checked_at":"2026-04-17T02:00:06.879Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["auditing","audition","es","eventsourcing","gradle-kotlin-dsl","gradle-plugin-kotlin","h2-console","h2-database","h2-gradle-run","inheritance","jpa","json","spring-data-jpa"],"created_at":"2024-11-11T15:26:42.418Z","updated_at":"2026-04-17T04:31:38.181Z","avatar_url":"https://github.com/daggerok.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# webflux-cqrs-es\nYep. It's in progress. Also.\n\n## run h2 database\n\n```bash\n./gradlew h2\n`\n\n## run applicatoin\n\n```bash\n./gradlew bootRun\n```\n\n## login into h2\n\n- open http://127.0.0.1:8082/\n- select h2 server\n- login:\n  - into `jdbc:h2:tcp://127.0.0.1:9092/~/test`\n  - as `su` user\n  - without password\n\n## add some events\n\n```bash\nhttp :8080/inheritance value1=ololo value2=trololo\nHTTP/1.1 200 OK\nContent-Length: 138\nContent-Type: application/json;charset=UTF-8\n# output:\n```\n\n```json\n{\n    \"createdDate\": \"2019-03-06T02:56:6\",\n    \"data\": {\n        \"value1\": \"ololo\",\n        \"value2\": \"trololo\"\n    },\n    \"id\": 1,\n    \"modifiedDate\": \"2019-03-06T02:56:719\",\n    \"version\": 0\n}\n```\n\n_update to test if @Version is working_\n\n\n```bash\nhttp :8080/inheritance/1 value1=ololo value2='trololo11111oneoneone'\nHTTP/1.1 200 OK\nContent-Length: 152\nContent-Type: application/json;charset=UTF-8\n# output:\n```\n\n```json\n{\n    \"createdDate\": \"2019-03-06T02:56:6\",\n    \"data\": {\n        \"value1\": \"ololo\",\n        \"value2\": \"trololo11111oneoneone\"\n    },\n    \"id\": 1,\n    \"modifiedDate\": \"2019-03-06T02:57:219\",\n    \"version\": 1\n}\n```\n\n## create inherit domain events\n\n1)\n\n```bash\necho '{\n  \"dataFieldOfEvent1\": \"ololo trololo!\",\n  \"data\": {\n    \"val1\": \"hello!\",\n    \"val2\": \"hola!\",\n    \"val3\": \"привед!\"\n  }\n}' | http :8080/event1\nHTTP/1.1 200 OK\ncontent-length: 0\n```\n\n2)\n\n```bash\nhttp :8080/event3 field1=one field2=two field3=three data:='{\"val1\":\"test!\"}'\nHTTP/1.1 200 OK\ncontent-length: 0\n```\n\n## now let's look what we have....\n\n```bash\nhttp :8080/events\nHTTP/1.1 200 OK\nContent-Length: 809\nContent-Type: application/json;charset=UTF-8\n# output:\n```\n\n```json\n{\n    \"domainEvents\": [\n        {\n            \"createdDate\": \"2019-03-06T03:05:18\",\n            \"data\": {\n                \"val1\": \"hello!\",\n                \"val2\": \"hola!\",\n                \"val3\": \"привед!\"\n            },\n            \"dataFieldOfEvent1\": \"ololo trololo!\",\n            \"id\": \"7218b483-aa67-4e64-8b03-d3b483c8e7b7\",\n            \"modifiedDate\": \"2019-03-06T03:05:792\"\n        },\n        {\n            \"createdDate\": \"2019-03-06T03:05:25\",\n            \"data\": {\n                \"val1\": \"test!\",\n                \"val2\": \"default val 2\",\n                \"val3\": \"and 3...\"\n            },\n            \"field1\": \"one\",\n            \"field2\": \"two\",\n            \"field3\": \"three\",\n            \"id\": \"68bc2d3b-50be-490a-a70b-5166153a4c8e\",\n            \"modifiedDate\": \"2019-03-06T03:05:447\"\n        }\n    ],\n    \"events1\": [\n        {\n            \"createdDate\": \"2019-03-06T03:05:18\",\n            \"data\": {\n                \"val1\": \"hello!\",\n                \"val2\": \"hola!\",\n                \"val3\": \"привед!\"\n            },\n            \"dataFieldOfEvent1\": \"ololo trololo!\",\n            \"id\": \"7218b483-aa67-4e64-8b03-d3b483c8e7b7\",\n            \"modifiedDate\": \"2019-03-06T03:05:792\"\n        }\n    ],\n    \"events2\": [],\n    \"events3\": [\n        {\n            \"createdDate\": \"2019-03-06T03:05:25\",\n            \"data\": {\n                \"val1\": \"test!\",\n                \"val2\": \"default val 2\",\n                \"val3\": \"and 3...\"\n            },\n            \"field1\": \"one\",\n            \"field2\": \"two\",\n            \"field3\": \"three\",\n            \"id\": \"68bc2d3b-50be-490a-a70b-5166153a4c8e\",\n            \"modifiedDate\": \"2019-03-06T03:05:447\"\n        }\n    ]\n}\n```\n\n\u003c!--\n\nTODO: kafka messaging and event sourcing and ...everything else\n\n## [download and start](https://raw.githubusercontent.com/daggerok/kafka-java-example/master/download-and-start-kafka.sh) kafka\n\n```bash\nwget -qO- https://raw.githubusercontent.com/daggerok/kafka-java-example/master/download-and-start-kafka.sh | bash\n```\n\n--\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaggerok%2Fwebflux-cqrs-es","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdaggerok%2Fwebflux-cqrs-es","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaggerok%2Fwebflux-cqrs-es/lists"}