rails_event_store_mongoid 0.14.3 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +13 -1
- data/CHANGELOG.md +7 -0
- data/docker-compose.yml +15 -0
- data/lib/rails_event_store_mongoid/event.rb +3 -1
- data/lib/rails_event_store_mongoid/event_repository.rb +11 -11
- data/lib/rails_event_store_mongoid/version.rb +1 -1
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bae6b9c1007eb8ea26141474e4092e0b44dae3fe
|
4
|
+
data.tar.gz: 41a79473474aad60c2644b082c927c817b334c25
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e6393f37cd44a865c6a68cef302c161fa2779b9939282a7a982f8ee10afd694aa16d32dc2fd8fbec3d93f9a1fad09c26ce09cd29a3885e9d6cf3fa6cfa8c6fef
|
7
|
+
data.tar.gz: 21ee24ab3ae6ae32047bc95741114ccb2a549dd6be54be67e6309969b59c2592d6204651e51e9236aff9d588a52aef1c2a3f04fd45738bda699a70c58f1d4057
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
* 0.15.0
|
2
|
+
|
3
|
+
Mongo ids are generated client side which is not guarante to be monotonic if
|
4
|
+
multiple records are created at the same time.
|
5
|
+
|
6
|
+
To maintain correct event order, we rely on a server side generated BSON timestamp.
|
7
|
+
https://docs.mongodb.com/manual/reference/bson-types/#timestamps
|
data/docker-compose.yml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
version: '2'
|
2
|
+
|
3
|
+
services:
|
4
|
+
mongo:
|
5
|
+
container_name: rails_event_store_mongo
|
6
|
+
image: mongo:3.2
|
7
|
+
command: ["--storageEngine", "wiredTiger"]
|
8
|
+
ports:
|
9
|
+
- "27027:27017"
|
10
|
+
logging:
|
11
|
+
driver: json-file
|
12
|
+
options:
|
13
|
+
max-size: '10k'
|
14
|
+
max-file: '3'
|
15
|
+
|
@@ -13,7 +13,9 @@ module RailsEventStoreMongoid
|
|
13
13
|
field :meta, type: Hash, default: {}
|
14
14
|
field :data, type: Hash, default: {}
|
15
15
|
|
16
|
+
field :ts, type: BSON::Timestamp, default: -> { BSON::Timestamp.new(0, 0) }
|
17
|
+
|
16
18
|
index(event_id: 1)
|
17
|
-
index(stream: 1,
|
19
|
+
index(stream: 1, ts: 1)
|
18
20
|
end
|
19
21
|
end
|
@@ -27,17 +27,17 @@ module RailsEventStoreMongoid
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def last_stream_event(stream_name)
|
30
|
-
build_event_entity(adapter.where(stream: stream_name).desc(:
|
30
|
+
build_event_entity(adapter.where(stream: stream_name).desc(:ts).first)
|
31
31
|
end
|
32
32
|
|
33
33
|
def read_events_forward(stream_name, start_event_id, count)
|
34
34
|
stream = adapter.where(stream: stream_name)
|
35
35
|
unless start_event_id.equal?(:head)
|
36
36
|
starting_event = adapter.find_by(event_id: start_event_id)
|
37
|
-
stream = stream.where(:
|
37
|
+
stream = stream.where(:ts.gt => starting_event.ts)
|
38
38
|
end
|
39
39
|
|
40
|
-
stream.asc(:
|
40
|
+
stream.asc(:ts).limit(count)
|
41
41
|
.map(&method(:build_event_entity))
|
42
42
|
end
|
43
43
|
|
@@ -45,20 +45,20 @@ module RailsEventStoreMongoid
|
|
45
45
|
stream = adapter.where(stream: stream_name)
|
46
46
|
unless start_event_id.equal?(:head)
|
47
47
|
starting_event = adapter.find_by(event_id: start_event_id)
|
48
|
-
stream = stream.where(:
|
48
|
+
stream = stream.where(:ts.lt => starting_event.ts)
|
49
49
|
end
|
50
50
|
|
51
|
-
stream.desc(:
|
51
|
+
stream.desc(:ts).limit(count)
|
52
52
|
.map(&method(:build_event_entity))
|
53
53
|
end
|
54
54
|
|
55
55
|
def read_stream_events_forward(stream_name)
|
56
|
-
adapter.where(stream: stream_name).asc(:
|
56
|
+
adapter.where(stream: stream_name).asc(:ts)
|
57
57
|
.map(&method(:build_event_entity))
|
58
58
|
end
|
59
59
|
|
60
60
|
def read_stream_events_backward(stream_name)
|
61
|
-
adapter.where(stream: stream_name).desc(:
|
61
|
+
adapter.where(stream: stream_name).desc(:ts)
|
62
62
|
.map(&method(:build_event_entity))
|
63
63
|
end
|
64
64
|
|
@@ -66,10 +66,10 @@ module RailsEventStoreMongoid
|
|
66
66
|
stream = adapter
|
67
67
|
unless start_event_id.equal?(:head)
|
68
68
|
starting_event = adapter.find_by(event_id: start_event_id)
|
69
|
-
stream = stream.where(:
|
69
|
+
stream = stream.where(:ts.gt => starting_event.ts)
|
70
70
|
end
|
71
71
|
|
72
|
-
stream.asc(:
|
72
|
+
stream.asc(:ts).limit(count)
|
73
73
|
.map(&method(:build_event_entity))
|
74
74
|
end
|
75
75
|
|
@@ -77,10 +77,10 @@ module RailsEventStoreMongoid
|
|
77
77
|
stream = adapter
|
78
78
|
unless start_event_id.equal?(:head)
|
79
79
|
starting_event = adapter.find_by(event_id: start_event_id)
|
80
|
-
stream = stream.where(:
|
80
|
+
stream = stream.where(:ts.lt => starting_event.ts)
|
81
81
|
end
|
82
82
|
|
83
|
-
stream.desc(:
|
83
|
+
stream.desc(:ts).limit(count)
|
84
84
|
.map(&method(:build_event_entity))
|
85
85
|
end
|
86
86
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails_event_store_mongoid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.15.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- gottfrois
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2017-02-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -149,12 +149,14 @@ files:
|
|
149
149
|
- ".gitignore"
|
150
150
|
- ".rspec"
|
151
151
|
- ".travis.yml"
|
152
|
+
- CHANGELOG.md
|
152
153
|
- Gemfile
|
153
154
|
- LICENSE.txt
|
154
155
|
- README.md
|
155
156
|
- Rakefile
|
156
157
|
- bin/console
|
157
158
|
- bin/setup
|
159
|
+
- docker-compose.yml
|
158
160
|
- lib/rails_event_store_mongoid.rb
|
159
161
|
- lib/rails_event_store_mongoid/event.rb
|
160
162
|
- lib/rails_event_store_mongoid/event_repository.rb
|
@@ -179,7 +181,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
179
181
|
version: '0'
|
180
182
|
requirements: []
|
181
183
|
rubyforge_project:
|
182
|
-
rubygems_version: 2.5.
|
184
|
+
rubygems_version: 2.5.2
|
183
185
|
signing_key:
|
184
186
|
specification_version: 4
|
185
187
|
summary: Mongoid events repository for Rails Event Store
|