{"id":21023204,"url":"https://github.com/simerplaha/in-memory-eventsourcing","last_synced_at":"2026-04-21T21:03:22.337Z","repository":{"id":92841251,"uuid":"60747591","full_name":"simerplaha/in-memory-eventsourcing","owner":"simerplaha","description":"Small application to test an Eventsourced type architecture but keeping all the domain objects in memory","archived":false,"fork":false,"pushed_at":"2016-06-09T16:09:42.000Z","size":51,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-20T13:34:35.812Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Scala","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/simerplaha.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":"2016-06-09T03:44:44.000Z","updated_at":"2020-04-10T06:18:15.000Z","dependencies_parsed_at":null,"dependency_job_id":"67e17b34-b65a-4a12-9fee-75a62959b422","html_url":"https://github.com/simerplaha/in-memory-eventsourcing","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/simerplaha%2Fin-memory-eventsourcing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simerplaha%2Fin-memory-eventsourcing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simerplaha%2Fin-memory-eventsourcing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simerplaha%2Fin-memory-eventsourcing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/simerplaha","download_url":"https://codeload.github.com/simerplaha/in-memory-eventsourcing/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243456568,"owners_count":20293904,"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-11-19T11:17:12.176Z","updated_at":"2025-12-29T21:05:12.233Z","avatar_url":"https://github.com/simerplaha.png","language":"Scala","funding_links":[],"categories":[],"sub_categories":[],"readme":"# In memory eventsourced demo app\n\nSmall application to test an Eventsourced type architecture but keeping all the domain objects in memory\n\n## Stack\n* Akka-typed\n* PostgresSQL\n* SBT\n\nRequired: Update postgres configuration in application.conf.\n\n## Goal\n- To see if I can use Actors to hold the state of each domain object in memory and to be able to search\nthe in memory actors without persisting it's state to another database like in CQRS.\n- To see if I can abstract out index creation (for searching large data sets) of Actor's state using\nLucene by just implementing a DSL (Not started on this yet)\n\nThe overall goal was to just create domain objects using Actors and Events and searching through the Actors state in memory\nefficiently without sacrificing performance.\n\nLook at the following two classes to checkout how to search through the state of actors.\n- [UserSearch.scala](https://github.com/simerplaha/in-memory-eventsourcing/blob/master/eventsourcing/src/main/scala/com/commerce/aggregate/user/UserSearch.scala)\n- [ShopSearch.scala](https://github.com/simerplaha/in-memory-eventsourcing/blob/master/eventsourcing/src/main/scala/com/commerce/aggregate/shop/ShopSearch.scala)\n\n## Events\n\nSet property persistEvents to true in application.conf file to start saving events to database.\n\n## Actor hierarchy\n\nUserManager -\u003e User -\u003e ShopManager -\u003e Shop\n\n## TODO\n- Add more comments to the code\n- Improve test cases\n- Add and test more features.\n- Exception messages are not printed in StackTrace when using StepWise because of actor timeout.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimerplaha%2Fin-memory-eventsourcing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimerplaha%2Fin-memory-eventsourcing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimerplaha%2Fin-memory-eventsourcing/lists"}