event_rail 0.1.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.
Files changed (38) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +47 -0
  3. data/CONTRIBUTING.md +14 -0
  4. data/MIT-LICENSE +20 -0
  5. data/README.md +364 -0
  6. data/SECURITY.md +3 -0
  7. data/lib/event_rail/contract.rb +44 -0
  8. data/lib/event_rail/current.rb +95 -0
  9. data/lib/event_rail/data.rb +4 -0
  10. data/lib/event_rail/envelope.rb +123 -0
  11. data/lib/event_rail/errors.rb +196 -0
  12. data/lib/event_rail/event.rb +258 -0
  13. data/lib/event_rail/internal/attribute_record.rb +272 -0
  14. data/lib/event_rail/internal/context.rb +32 -0
  15. data/lib/event_rail/internal/contract_index.rb +28 -0
  16. data/lib/event_rail/internal/event_serializer.rb +148 -0
  17. data/lib/event_rail/internal/execution.rb +86 -0
  18. data/lib/event_rail/internal/extensions.rb +69 -0
  19. data/lib/event_rail/internal/identity.rb +90 -0
  20. data/lib/event_rail/internal/notifications.rb +42 -0
  21. data/lib/event_rail/internal/portable_value.rb +108 -0
  22. data/lib/event_rail/internal/registry.rb +224 -0
  23. data/lib/event_rail/internal/stamping.rb +185 -0
  24. data/lib/event_rail/internal/subscriber_execution.rb +61 -0
  25. data/lib/event_rail/internal/timestamp.rb +85 -0
  26. data/lib/event_rail/internal/transaction.rb +33 -0
  27. data/lib/event_rail/internal/types.rb +441 -0
  28. data/lib/event_rail/job_context.rb +124 -0
  29. data/lib/event_rail/limits.rb +31 -0
  30. data/lib/event_rail/metadata.rb +94 -0
  31. data/lib/event_rail/portable_type.rb +35 -0
  32. data/lib/event_rail/publication.rb +33 -0
  33. data/lib/event_rail/publish.rb +88 -0
  34. data/lib/event_rail/railtie.rb +15 -0
  35. data/lib/event_rail/subscriptions.rb +59 -0
  36. data/lib/event_rail/version.rb +3 -0
  37. data/lib/event_rail.rb +52 -0
  38. metadata +184 -0
metadata ADDED
@@ -0,0 +1,184 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: event_rail
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Alex Dmitriev
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: activejob
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '7.2'
19
+ - - "<"
20
+ - !ruby/object:Gem::Version
21
+ version: '9'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ version: '7.2'
29
+ - - "<"
30
+ - !ruby/object:Gem::Version
31
+ version: '9'
32
+ - !ruby/object:Gem::Dependency
33
+ name: activemodel
34
+ requirement: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: '7.2'
39
+ - - "<"
40
+ - !ruby/object:Gem::Version
41
+ version: '9'
42
+ type: :runtime
43
+ prerelease: false
44
+ version_requirements: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '7.2'
49
+ - - "<"
50
+ - !ruby/object:Gem::Version
51
+ version: '9'
52
+ - !ruby/object:Gem::Dependency
53
+ name: activesupport
54
+ requirement: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ version: '7.2'
59
+ - - "<"
60
+ - !ruby/object:Gem::Version
61
+ version: '9'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '7.2'
69
+ - - "<"
70
+ - !ruby/object:Gem::Version
71
+ version: '9'
72
+ - !ruby/object:Gem::Dependency
73
+ name: railties
74
+ requirement: !ruby/object:Gem::Requirement
75
+ requirements:
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: '7.2'
79
+ - - "<"
80
+ - !ruby/object:Gem::Version
81
+ version: '9'
82
+ type: :runtime
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '7.2'
89
+ - - "<"
90
+ - !ruby/object:Gem::Version
91
+ version: '9'
92
+ - !ruby/object:Gem::Dependency
93
+ name: zeitwerk
94
+ requirement: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ version: 2.6.2
99
+ - - "<"
100
+ - !ruby/object:Gem::Version
101
+ version: '4'
102
+ type: :runtime
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - ">="
107
+ - !ruby/object:Gem::Version
108
+ version: 2.6.2
109
+ - - "<"
110
+ - !ruby/object:Gem::Version
111
+ version: '4'
112
+ description: EventRail adds immutable domain events, retry-stable identity, logical
113
+ context propagation, and Rails-native durable fanout without replacing Active Job
114
+ or its queue adapter.
115
+ email:
116
+ - alexey.dmitriev6238@gmail.com
117
+ executables: []
118
+ extensions: []
119
+ extra_rdoc_files: []
120
+ files:
121
+ - CHANGELOG.md
122
+ - CONTRIBUTING.md
123
+ - MIT-LICENSE
124
+ - README.md
125
+ - SECURITY.md
126
+ - lib/event_rail.rb
127
+ - lib/event_rail/contract.rb
128
+ - lib/event_rail/current.rb
129
+ - lib/event_rail/data.rb
130
+ - lib/event_rail/envelope.rb
131
+ - lib/event_rail/errors.rb
132
+ - lib/event_rail/event.rb
133
+ - lib/event_rail/internal/attribute_record.rb
134
+ - lib/event_rail/internal/context.rb
135
+ - lib/event_rail/internal/contract_index.rb
136
+ - lib/event_rail/internal/event_serializer.rb
137
+ - lib/event_rail/internal/execution.rb
138
+ - lib/event_rail/internal/extensions.rb
139
+ - lib/event_rail/internal/identity.rb
140
+ - lib/event_rail/internal/notifications.rb
141
+ - lib/event_rail/internal/portable_value.rb
142
+ - lib/event_rail/internal/registry.rb
143
+ - lib/event_rail/internal/stamping.rb
144
+ - lib/event_rail/internal/subscriber_execution.rb
145
+ - lib/event_rail/internal/timestamp.rb
146
+ - lib/event_rail/internal/transaction.rb
147
+ - lib/event_rail/internal/types.rb
148
+ - lib/event_rail/job_context.rb
149
+ - lib/event_rail/limits.rb
150
+ - lib/event_rail/metadata.rb
151
+ - lib/event_rail/portable_type.rb
152
+ - lib/event_rail/publication.rb
153
+ - lib/event_rail/publish.rb
154
+ - lib/event_rail/railtie.rb
155
+ - lib/event_rail/subscriptions.rb
156
+ - lib/event_rail/version.rb
157
+ homepage: https://github.com/alexdmtv/event-rail
158
+ licenses:
159
+ - MIT
160
+ metadata:
161
+ homepage_uri: https://github.com/alexdmtv/event-rail
162
+ source_code_uri: https://github.com/alexdmtv/event-rail
163
+ changelog_uri: https://github.com/alexdmtv/event-rail/blob/main/CHANGELOG.md
164
+ bug_tracker_uri: https://github.com/alexdmtv/event-rail/issues
165
+ documentation_uri: https://github.com/alexdmtv/event-rail#readme
166
+ rubygems_mfa_required: 'true'
167
+ rdoc_options: []
168
+ require_paths:
169
+ - lib
170
+ required_ruby_version: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - ">="
173
+ - !ruby/object:Gem::Version
174
+ version: '3.3'
175
+ required_rubygems_version: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - ">="
178
+ - !ruby/object:Gem::Version
179
+ version: '0'
180
+ requirements: []
181
+ rubygems_version: 3.6.9
182
+ specification_version: 4
183
+ summary: Typed, durable event fanout through ordinary Active Job subscribers.
184
+ test_files: []