mithic
Version:
Modular library for real-time isomorphic applications using CQRS/ES/CRDT
38 lines (26 loc) • 2.86 kB
Markdown
> ## ⚠ Heavily WIP, not for consumption yet.
> ### Event sourcing module upcoming
<br />
<h1 align="center">mithic</h1>
[](https://github.com/andykswong/mithic)
[](https://www.npmjs.com/package/mithic)
[](http://andykswong.github.io/mithic)
[](./LICENSE)
[](https://codecov.io/gh/andykswong/mithic)
[](https://github.com/andykswong/mithic/actions/workflows/build.yaml)
<br/>
> Modular library for real-time isomorphic JavaScript applications using CQRS/ES/CRDT
<br />
## Overview
`mithic` provides the building blocks for creating real-time client and server side applications, using patterns from [CQRS](https://en.wikipedia.org/wiki/Command%E2%80%93query_separation), [Event Sourcing (ES)](https://en.wikipedia.org/wiki/Event_store) and [CRDT](https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type).
In `mithic`, events form a causal [Merkle DAG](https://docs.ipfs.tech/concepts/merkle-dag/), instead of just a linear event stream. This allows CRDTs to be constructed through conflict-free replication of event graph, which is perfect for implementing offline-first and/or decentralized applications.
## Packages
|Package|NPM|Description|
|-------|---|-----------|
|[`/collections`](./packages/collections)|[](https://www.npmjs.com/package/@mithic/collections)|collection library|
|[`/commons`](./packages/commons)|[](https://www.npmjs.com/package/@mithic/commons)|common utility components|
|[`/cqrs`](./packages/cqrs)|[](https://www.npmjs.com/package/@mithic/cqrs)|CQRS library|
|[`/event`](./packages/event) (WIP)|[](https://www.npmjs.com/package/@mithic/event)|event graph store interface|
|[`/messaging`](./packages/messaging)|[](https://www.npmjs.com/package/@mithic/messaging)|messaging interface|
## License
This repository and the code inside it is licensed under the MIT License. Read [LICENSE](./LICENSE) for more information.