{"id":13561049,"url":"https://github.com/francoisroyer/clj-cqrs","last_synced_at":"2025-04-03T16:31:55.058Z","repository":{"id":217044911,"uuid":"89124838","full_name":"francoisroyer/clj-cqrs","owner":"francoisroyer","description":"A reference implementation of CQRS and Event Sourcing in Clojure.","archived":false,"fork":false,"pushed_at":"2017-04-23T07:47:52.000Z","size":90,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-11-04T12:40:16.303Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/francoisroyer.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":"2017-04-23T07:29:02.000Z","updated_at":"2017-08-24T14:28:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"451e1785-56da-4c79-9081-e3f505f5e033","html_url":"https://github.com/francoisroyer/clj-cqrs","commit_stats":null,"previous_names":["francoisroyer/clj-cqrs"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/francoisroyer%2Fclj-cqrs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/francoisroyer%2Fclj-cqrs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/francoisroyer%2Fclj-cqrs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/francoisroyer%2Fclj-cqrs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/francoisroyer","download_url":"https://codeload.github.com/francoisroyer/clj-cqrs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247037064,"owners_count":20873090,"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":[],"created_at":"2024-08-01T13:00:52.018Z","updated_at":"2025-04-03T16:31:50.048Z","avatar_url":"https://github.com/francoisroyer.png","language":"Clojure","funding_links":[],"categories":["Clojure"],"sub_categories":[],"readme":"# clj-cqrs\n\nA Clojure library implementing CQRS and event-sourcing using Immutant components.\n\n## Usage\n\nTODO show how to to use as a template\n\nTODO add DSL for contract / domain logic?\n\n\n## Deploy in a Wildfly cluster in Openshift\n\nrhc create-app $APPNAME wildfly --from-code $GIT_LOCATION\n\nrhc create-app wf wildfly --no-git\n\nlein do clean, immutant\n\ncp .war to ROOT.war then scp to deployments + add ROOT.war.dodeploy\n/var/lib/openshift/{APP_ID}/app-root/runtime/dependencies/jbossews/webapps\n/var/lib/openshift/5781680e2d52716c2100006a\n\nscp \u003cyour local file name\u003e \u003cyour hash number\u003e@\u003cyour app name\u003e-\u003cyour domain name\u003e.rhcloud.com:~/\u003capp name\u003e/data/\n\nscp target/clj-cqrs.war 5781680e2d52716c2100006a@wf-datasio.rhcloud.com:~/app-deployments/2016-07-09_17-09-43.431/repo/deployments/\n\ncp app-deployments/2016-07-09_17-09-43.431/repo/deployments/clj-cqrs.* wildfly/standalone/deployments/\n\nvisit http://wf-datasio.rhcloud.com/clj-cqrs/api-docs/index.html\n\nhttp://dmitrygusev.blogspot.fr/2013/06/deploy-application-binaries-war-to.html\nhttp://jagadesh4java.blogspot.fr/2014/04/deploy-custom-application-into-openshift.html\n\nTODO cmd line with set of questions to build commands + memoize\n\n\nAPP Assisted learning -\u003e document import/upload + BPM/workflow + screens to advance state\n\nIndex -\u003e category trees, documents\nConnectors + extractor for entities etc...\nDatasets - url\nWorkflows - BPM spec?\nWorkbooks/Cases/study/investigation\nDataflow - realtime (push or pull) or batch queries\n\n\n## Docker services\n\n#Getting started with Keycloak: http://blog.keycloak.org/2015/10/getting-started-with-keycloak.html\ndocker run jboss/keycloak --name keycloak\ndocker inspect --format='.NetworkSettings.IPAddress' keycloak\nOr: \ndocker run jboss/keycloak --name keycloak -p 8080:8080\n\n#https://wesmorgan.svbtle.com/deploying-clojure-apps-with-docker-and-immutant-2\n\n## References\nhttp://www.multunus.com/blog/2016/02/noobs-walkthrough-re-frame-app/\nhttps://lostechies.com/jimmybogard/2016/06/01/cqrs-and-rest-the-perfect-match/\n\nookami86 Event Sourcing in practice\nTrigger side effects only when applying Command to object\nThen Events applied to change state (this step only called on replay - not the other one)\n\n## License\n\nCopyright © 2016 François Royer\n\nDistributed under the Eclipse Public License either version 1.0 or (at\nyour option) any later version.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrancoisroyer%2Fclj-cqrs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffrancoisroyer%2Fclj-cqrs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrancoisroyer%2Fclj-cqrs/lists"}