Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ianmorgan/graph-store
Provides a simple document style persistence API with event sourcing & GraphQL support
https://github.com/ianmorgan/graph-store
domain-driven-design event-sourcing graphql graphql-api kotlin spek
Last synced: about 1 month ago
JSON representation
Provides a simple document style persistence API with event sourcing & GraphQL support
- Host: GitHub
- URL: https://github.com/ianmorgan/graph-store
- Owner: ianmorgan
- License: mit
- Created: 2018-05-10T15:19:27.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2018-11-29T16:30:00.000Z (about 6 years ago)
- Last Synced: 2024-08-01T13:34:51.229Z (4 months ago)
- Topics: domain-driven-design, event-sourcing, graphql, graphql-api, kotlin, spek
- Language: Kotlin
- Size: 705 KB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-ccamel - ianmorgan/graph-store - Provides a simple document style persistence API with event sourcing & GraphQL support (Kotlin)
README
# graph-store
[![Travis CI](https://img.shields.io/travis/ianmorgan/graph-store/master.svg)](https://travis-ci.org/ianmorgan/graph-store)
[![License](https://img.shields.io/github/license/ianmorgan/graph-store.svg)](https://github.com/ianmorgan/graph-store/blob/master/LICENSE)Setup [DDD style aggregates](https://martinfowler.com/bliki/DDD_Aggregate.html) from a GraphQL schema. Store
aggregate state to an event-store using REST, and query using both GraphQL
and traditional REST. More advanced applications can use [CQRS](https://www.martinfowler.com/bliki/CQRS.html)
principle to build custom data integrations and views by simply reducing
the underlying event stream.* data is stored using an event sourcing model in an 'event-store'.
* a [GraphQL](https://graphql.org/) API is provided for querying
* Schema information can be attached to drive GraphQL
API and to provide some level of validation when saving data.
* external "read-only" resources can be attached to GraphQL queries
* like most document style stores, the ability to store both complete
documents and partial updates is supported.
* by keeping to simple, generic events this is deliberately aimed at problem
domains where an aggregate can simply be modelled as a document. The architectural benefits of event sourcing are
retained, for example another system could observe the events, but there is no attempt to define state as a set of
explicit domain events (AccountCreated, AccountApproved etc).For more details try the [docs](https://ianmorgan.github.io/graph-store/) and also [Trello](https://trello.com/b/5lXXr7jc/doc-store)