Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
4c69321
decider traits and in memory impl
Shearerbeard Dec 21, 2022
d01c291
test stubs for in decider
Shearerbeard Dec 21, 2022
c666be0
WIP: tests for in-memory decider example
Shearerbeard Dec 21, 2022
6b50472
WIP: more tests
Shearerbeard Dec 21, 2022
64cf2cf
WIP: another test case before splitting modules
Shearerbeard Dec 23, 2022
dba14b8
ESDB event repository
Shearerbeard Dec 26, 2022
1a71eda
out with old cold - only new decider
Shearerbeard Dec 27, 2022
bc49072
move tests data to its own module, remove <C> from Event Repository g…
Shearerbeard Dec 27, 2022
a7258be
Fine grained streams functioning
Shearerbeard Dec 27, 2022
84fb351
add test assertions
Shearerbeard Dec 27, 2022
f2192df
remove all clones by taking read only refs as args
Shearerbeard Dec 27, 2022
9c20230
Nest reference in stream optional to simplify interface
Shearerbeard Dec 27, 2022
3cf7c8c
convert other repository traits to use references
Shearerbeard Dec 27, 2022
cd995ba
move in-memory module
Shearerbeard Dec 27, 2022
df70034
new basic in memory state repository
Shearerbeard Dec 27, 2022
b07ce04
chore: rename simplistic in memory event repository & add stub for ve…
Shearerbeard Dec 27, 2022
fb6eb41
VersionEventRepositoryWithStreams impl
Shearerbeard Dec 28, 2022
298fac9
divide modules between state and event repositories
Shearerbeard Dec 28, 2022
10c5b4d
massive reorganization - decider and repository as base crate modules
Shearerbeard Dec 28, 2022
e0752b6
import cleanup
Shearerbeard Dec 28, 2022
345a79f
move ESDB tests to generic test_helper for all event repository imple…
Shearerbeard Dec 28, 2022
528c306
in memory event store version slices bugfixes
Shearerbeard Dec 28, 2022
4e6839f
fixes general stream in fine grained stream memory event repository
Shearerbeard Dec 28, 2022
167ffad
split repository naming and paths, optional deps by feature, add in m…
Shearerbeard Dec 29, 2022
1d27d30
rudimentary versioned state reify/save test
Shearerbeard Dec 29, 2022
79406f4
Decider with Context might be a valid use case
Shearerbeard Jan 2, 2023
ab79e6f
refinement of extended decider types
Shearerbeard Jan 3, 2023
b1efed5
decider with ctx - use ref for Ctx
Shearerbeard Jan 3, 2023
5b3fca7
add clone to ESDB repository
Shearerbeard Jan 3, 2023
3867e8b
refactor to associated types
Shearerbeard Jan 4, 2023
e7fc3e7
Evolve to associated types
Shearerbeard Jan 4, 2023
f36ce48
implement decide in terms of evolve
Shearerbeard Jan 4, 2023
3ffba93
adds basic strategies
Shearerbeard Jan 4, 2023
38778ba
unessesary trait bounds
Shearerbeard Jan 4, 2023
2f600f3
auto retry versioned event repository strategy
Shearerbeard Jan 5, 2023
196bcf0
impl Error for VersionedRepositoryError
Shearerbeard Jan 5, 2023
7649b97
test OCC
Shearerbeard Jan 6, 2023
28eb03c
more LoadDecideAppend basic functionality tests
Shearerbeard Jan 6, 2023
be29fb6
concurrency tests pass!
Shearerbeard Jan 6, 2023
5caa3eb
clean up logging
Shearerbeard Jan 6, 2023
ea819e5
Adds compose setup for tests
Jan 10, 2023
73e4c5c
version bump
Shearerbeard Jan 12, 2023
ed315b7
Merge branch 'decider' of github.com:Shearerbeard/Epoch into decider
Shearerbeard Jan 12, 2023
c5e0f44
make new public
Shearerbeard Jan 12, 2023
c647b80
bump version - added StreamState as argument to execute
Shearerbeard Jan 18, 2023
2810528
typo and add randomized base stream to ESDB tests
Shearerbeard Jan 18, 2023
25c0324
reloacate strategies to mod to diversify strategies without polluting…
Shearerbeard Mar 9, 2023
d71c444
epoch - command response strategy
Shearerbeard Mar 11, 2023
3258ab4
reorg arguments - owned first
Shearerbeard Mar 11, 2023
c75afac
unnecessary clone
Shearerbeard Mar 11, 2023
35ba0e3
test for DecideEvolveWithCommandResponse - clippy cleanup
Shearerbeard Mar 13, 2023
d56720a
fix pub crate on StateFromEventRepository - pub so we can reach it ou…
Shearerbeard Mar 13, 2023
50f47d9
state based persistance strategy ReifyDecideSave
Shearerbeard Mar 22, 2023
dadf0a4
more trait bounds
Shearerbeard Mar 22, 2023
ee1ac5a
load state/version from in memory state repo
Shearerbeard Mar 22, 2023
12efe9d
add lifetimes to versioned state repository trait to make it send + s…
Shearerbeard Mar 22, 2023
ade9a7e
happy path for ReifyDecideSave strategy
Shearerbeard Mar 22, 2023
17460f8
use versioned repository error in state based storage traits
Shearerbeard Mar 23, 2023
b8c99b9
retry in state based strategy
Shearerbeard Mar 23, 2023
ed64c96
passes tests
Shearerbeard Mar 24, 2023
096721a
version bump
Shearerbeard Mar 24, 2023
263a9b9
clippy
Shearerbeard Mar 24, 2023
09bd3f6
Upgrade ESDB dependency to resolve weird Uuid version pinning
bobby Mar 24, 2023
5834bf1
RepositoryVersion derives Serialize/Deserialize
bobby Mar 28, 2023
354b03c
Merge pull request #6 from Shearerbeard/serialize-repository-version
Shearerbeard Mar 28, 2023
3f359f6
Merge pull request #4 from Shearerbeard/esdb-upgrade
Shearerbeard Mar 28, 2023
34f7981
version bump
Shearerbeard Mar 28, 2023
c731f85
Initial state (#3)
bobby Mar 29, 2023
25e8a17
State repo reify result (#7)
bobby Apr 20, 2023
ddd3c98
remove send sync from ReifyDecideSave and versioned state repository
Shearerbeard Jun 4, 2023
8a315bc
remove send sync from DecideEvolveWithCommandResponse
Shearerbeard Jun 4, 2023
4f33aa1
WIP: placeholder check in - I cant' get ?Send to work in a true threa…
Shearerbeard Jun 4, 2023
e832b65
wip placeholder: annother attempt - further down the rabbit hole
Shearerbeard Jun 4, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,6 @@ Cargo.lock

# These are backup files generated by rustfmt
**/*.rs.bk

.env

24 changes: 17 additions & 7 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,17 +1,27 @@
[package]
name = "epoch"
version = "0.1.0"
version = "1.0.0-alpha.16"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[features]
default = ["in_memory", "esdb"]
in_memory = []
esdb = ["dep:eventstore", "dep:uuid", "dep:serde_json"]

[dependencies]
async-trait = "0.1.53"
chrono = "0.4.19"
eventstore = "2.1.1"
eventstore = { version = "2.2.0", optional = true }
serde = { version = "1.0.136", features = ["derive"] }
serde_json = "1.0.81"
serde_json = { version = "1.0.81", optional = true }
thiserror = "1.0"
# Use 0.8.2 only here because of a weird deps bug with eventstore
# 1.x uuids are not compatible with eventstore internal uuids
uuid = { version = "0.8.2", features = ["v4", "serde"] }
uuid = { package = "uuid", version = "1.2.2", features = ["v4", "serde"], optional = true }

[dev-dependencies]
actix-rt = "2.7.0"
assert_matches = "1.5.0"
const-random = "0.1.15"
autoincrement = "1"
dotenv = "0.15.0"
futures = "0.3.25"
39 changes: 39 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
version: "3.9"
services:
redis:
image: "redislabs/rejson:latest"
restart: always
ports:
- '6379:6379'
command: redis-server --save 20 1 --loglevel warning --loadmodule /usr/lib/redis/modules/rejson.so
volumes:
- redis:/data
eventstore.db:
image: eventstore/eventstore:20.10.2-buster-slim
environment:
- EVENTSTORE_CLUSTER_SIZE=1
- EVENTSTORE_RUN_PROJECTIONS=All
- EVENTSTORE_START_STANDARD_PROJECTIONS=true
- EVENTSTORE_EXT_TCP_PORT=1113
- EVENTSTORE_HTTP_PORT=2113
- EVENTSTORE_INSECURE=true
- EVENTSTORE_ENABLE_EXTERNAL_TCP=true
- EVENTSTORE_ENABLE_ATOM_PUB_OVER_HTTP=true
ports:
- "1113:1113"
- "2113:2113"
volumes:
- type: volume
source: eventstore-volume-data
target: /var/lib/eventstore
- type: volume
source: eventstore-volume-logs
target: /var/log/eventstore

volumes:
redis:
driver: local
eventstore-volume-data:
driver: local
eventstore-volume-logs:
driver: local
17 changes: 0 additions & 17 deletions epoch/Cargo.toml

This file was deleted.

230 changes: 0 additions & 230 deletions epoch/src/event_store.rs

This file was deleted.

Loading