{"id":20640247,"url":"https://github.com/corker/estuite","last_synced_at":"2026-05-10T16:07:17.344Z","repository":{"id":74155131,"uuid":"80920945","full_name":"corker/estuite","owner":"corker","description":"An event store for Microsoft Azure","archived":false,"fork":false,"pushed_at":"2017-09-03T19:03:10.000Z","size":237,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-16T11:40:32.676Z","etag":null,"topics":["azure","azure-table-storage","cloud-native","ddd","event-sourcing","eventstore","microsoft"],"latest_commit_sha":null,"homepage":"","language":"C#","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/corker.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-02-04T13:27:24.000Z","updated_at":"2018-05-28T22:30:56.000Z","dependencies_parsed_at":"2023-06-29T08:46:24.135Z","dependency_job_id":null,"html_url":"https://github.com/corker/estuite","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/corker/estuite","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/corker%2Festuite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/corker%2Festuite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/corker%2Festuite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/corker%2Festuite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/corker","download_url":"https://codeload.github.com/corker/estuite/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/corker%2Festuite/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268157898,"owners_count":24204763,"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","status":"online","status_checked_at":"2025-08-01T02:00:08.611Z","response_time":67,"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":["azure","azure-table-storage","cloud-native","ddd","event-sourcing","eventstore","microsoft"],"created_at":"2024-11-16T15:28:38.886Z","updated_at":"2026-05-10T16:07:12.304Z","avatar_url":"https://github.com/corker.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"Estuite [![Build status](https://ci.appveyor.com/api/projects/status/et4nsy7i9x6eg7y5?svg=true)](https://ci.appveyor.com/project/corker/estuite) [![Coverage Status](https://coveralls.io/repos/github/corker/estuite/badge.svg?branch=master)](https://coveralls.io/github/corker/estuite?branch=master)\n==\n\nAn event store for Microsoft Azure.\n\nThis is an early alpha version. Feel free to join.\n\nWhy?\n====\n\nThere are a number of implementations for event store that perfectly work with .NET environment:\n- EventStore - https://geteventstore.com/\n- NEventStore - http://neventstore.org/\n- Cirqus - https://github.com/d60/Cirqus\n\nHere you could find a lot of resources related to DDD and ES:\n- https://github.com/heynickc/awesome-ddd\n\nThere is even one that implements event store on top of Azure table store:\n- https://github.com/yevhen/Streamstone\n\nSome of them are really good but was designed for on premise environments. \nThus they can't utilize all benefits of Azure platform such as partitioning. \nOr have to run on dedicated virtual machines which is not the way to go for cloud native solutions. \nSome have been designed to run on Azure although they lack useful features.\nLike idempotency check when saving events to a store which is available in NEventStore in combination with NES.\n\nThere is one more interesting source that I really look forward to borrow some nice patterns related to Azure table store:\n- http://cqrsjourney.github.io/\n\nThe last topic. \nAzure table store has been designed to be simple. \nThere is no support for secondary indexes. \nYou can only have a partition key and a row key.\nAutomatic scaling based on partition key is a huge advantage of Azure Table Store.\nMicrosoft says that Azure Table Store is extremely cheap. This statement will be validated and results posted here.\nAlthough a typical event store has to query streams when dehydrate aggregates as well as events when denormalizing projections.\nThis is a challenge that can't be implemented within a single Azure Table.\nEstuite uses stream table as a single source of truth and dispatch all events from stream table to event table asynchronously.\nThe challenge would be to keep these two tables in sync.\n\nWho am I?\n--\nMy name is Michael Borisov. I'm interested in CQRS, DDD, event sourcing and micro services architecture.\n\nIf you have any questions or comments regarding to the project please feel free to contact me on [Twitter](https://twitter.com/fkem) or [LinkedIn](https://www.linkedin.com/in/michaelborisov)\n\nHappy coding!","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcorker%2Festuite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcorker%2Festuite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcorker%2Festuite/lists"}