https://github.com/exponentially/helios
A Building blocks for elixir CQRS segregated applications
https://github.com/exponentially/helios
cqrs cqrs-es cqrs-framework elixir elixir-lang elixir-library event-sourcing eventsourcing
Last synced: 9 months ago
JSON representation
A Building blocks for elixir CQRS segregated applications
- Host: GitHub
- URL: https://github.com/exponentially/helios
- Owner: exponentially
- License: apache-2.0
- Created: 2018-09-18T13:43:44.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2019-09-25T11:32:22.000Z (over 6 years ago)
- Last Synced: 2025-04-23T18:08:59.655Z (9 months ago)
- Topics: cqrs, cqrs-es, cqrs-framework, elixir, elixir-lang, elixir-library, event-sourcing, eventsourcing
- Language: Elixir
- Size: 180 KB
- Stars: 15
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://hex.pm/packages/helios)
[](https://travis-ci.org/exponentially/helios)
[](https://coveralls.io/github/exponentially/helios?branch=master)
# Helios
A building blocks for elixir CQRS segregated applications.
## Installation
The package can be installed by adding `helios` to your list of dependencies in `mix.exs`:
```elixir
def deps do
[
{:helios, "~> 0.2"}
]
end
```
Example application can be seen [here](https://github.com/exponentially/helios_example)
## Configuration
It is important to knwo that there is minimum configuration that has to be explicitly
configured in your application, without it application will not work or start.
### Default Event Journal
```elixir
use Mix.Config
config :your_app, :default_journal,
YourApp.DefaultJournal
# you also need to configure that journal
config :your_app, YourApp.DefaultJournal,
adapter: Helios.EventJournal.Adapter.Memory # ETS journal
adapter_config: []
```
or, if you need to persist events over application restarts
```elixir
use Mix.Config
config :your_app, :default_journal,
YourApp.DefaultJournal
config :your_app, YourApp.DefaultJournal,
adapter: Helios.EventJournal.Adapter.Eventstore
adapter_config: [
db_type: :node,
host: "localhost",
port: 1113,
username: "admin",
password: "changeit",
connection_name: "your_app",
max_attempts: 10
]
```
don't forget to add [extreme](https://github.com/exponentially/extreme) dependency to
your project `{:extreme, "~> 0.13"}`
## Guides
* [Helios Configuration](guides/Configuration.md)
* [Your First Aggregate Behaviour](guides/Your%20First%20Aggregate.md)
* [Routing](guides/Routing.md)