jetstream_bridge 3.0.2 → 4.0.1
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/CHANGELOG.md +54 -1
- data/README.md +1149 -84
- data/lib/jetstream_bridge/consumer/consumer.rb +174 -6
- data/lib/jetstream_bridge/consumer/inbox/inbox_processor.rb +1 -1
- data/lib/jetstream_bridge/consumer/message_processor.rb +41 -7
- data/lib/jetstream_bridge/consumer/middleware.rb +154 -0
- data/lib/jetstream_bridge/core/config.rb +150 -9
- data/lib/jetstream_bridge/core/config_preset.rb +99 -0
- data/lib/jetstream_bridge/core/connection.rb +5 -2
- data/lib/jetstream_bridge/core/connection_factory.rb +1 -1
- data/lib/jetstream_bridge/core/duration.rb +19 -35
- data/lib/jetstream_bridge/errors.rb +60 -8
- data/lib/jetstream_bridge/models/event.rb +202 -0
- data/lib/jetstream_bridge/{inbox_event.rb → models/inbox_event.rb} +61 -3
- data/lib/jetstream_bridge/{outbox_event.rb → models/outbox_event.rb} +64 -15
- data/lib/jetstream_bridge/models/publish_result.rb +64 -0
- data/lib/jetstream_bridge/models/subject.rb +53 -2
- data/lib/jetstream_bridge/publisher/batch_publisher.rb +163 -0
- data/lib/jetstream_bridge/publisher/publisher.rb +238 -19
- data/lib/jetstream_bridge/test_helpers.rb +275 -0
- data/lib/jetstream_bridge/version.rb +1 -1
- data/lib/jetstream_bridge.rb +178 -3
- data/lib/tasks/yard.rake +18 -0
- metadata +11 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 358b977021f3b620cbbedb6af88bca009060f2da62ec932cbdcf5db1e3b0b375
|
|
4
|
+
data.tar.gz: 4f0ca0e54a96aee5971460c2be2fdeac82e5f6df00fc70a17fb90e472e91e1ee
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 550efc74885ce2b4d2fbc86742bf0db0dabdf402b64c6b072a3007b435946e09f460f5b759f1f027a3ba4ed8211b9a807ff6f157b075179d2901284703097b47
|
|
7
|
+
data.tar.gz: '09478489b9e13b897979657cb5fa5dd6da90f9399ad4e09d7f5e0436c9fc881e02c1ffc2c7441834d72dff3c9549b846d199c4cb6bf5adee845babb4877235ae'
|
data/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,59 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [4.0.1] - 2025-11-23
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- **Documentation** - Updated version references in README and YARD documentation
|
|
13
|
+
- Installation instructions now reference version 4.0
|
|
14
|
+
- Health check example output shows correct version
|
|
15
|
+
- YARD documentation reflects current version
|
|
16
|
+
|
|
17
|
+
## [4.0.0] - 2025-11-23
|
|
18
|
+
|
|
19
|
+
### Breaking Changes
|
|
20
|
+
|
|
21
|
+
- **Per-app Dead Letter Queue (DLQ)** - DLQ subject pattern changed for better isolation
|
|
22
|
+
- **Old pattern**: `{env}.sync.dlq` (shared across all apps)
|
|
23
|
+
- **New pattern**: `{env}.{app_name}.sync.dlq` (isolated per app)
|
|
24
|
+
- **Example**: `production.api.sync.dlq` instead of `production.sync.dlq`
|
|
25
|
+
|
|
26
|
+
### Benefits
|
|
27
|
+
|
|
28
|
+
- **Isolation**: Failed messages from different services don't mix
|
|
29
|
+
- **Easier Monitoring**: Track DLQ metrics per service
|
|
30
|
+
- **Simpler Debugging**: Identify which service is having issues
|
|
31
|
+
- **Independent Processing**: Each team can manage their own DLQ consumer
|
|
32
|
+
|
|
33
|
+
### Migration Guide
|
|
34
|
+
|
|
35
|
+
1. **Drain existing DLQ**: Process or archive messages from the old shared DLQ (`{env}.sync.dlq`)
|
|
36
|
+
2. **Deploy update**: Each app will automatically create its own DLQ subject on next deployment
|
|
37
|
+
3. **Update monitoring**: Adjust dashboards to track per-app DLQ subjects (`{env}.{app_name}.sync.dlq`)
|
|
38
|
+
4. **Update DLQ consumers**: Update DLQ consumer configuration to use app-specific subjects
|
|
39
|
+
|
|
40
|
+
### Documentation
|
|
41
|
+
|
|
42
|
+
- **Enhanced README** - Comprehensive documentation improvements
|
|
43
|
+
- Fixed consumer handler signature (single `event` parameter, not three)
|
|
44
|
+
- Added complete DLQ consumer examples with Rake task
|
|
45
|
+
- Added thread-safety documentation for Publisher
|
|
46
|
+
- Updated all subject pattern references
|
|
47
|
+
- Added DLQ monitoring examples
|
|
48
|
+
- **YARD documentation** - Professional API documentation
|
|
49
|
+
- Added `.yardopts` configuration for consistent doc generation
|
|
50
|
+
- 60%+ documentation coverage across public APIs
|
|
51
|
+
- Configured RubyDoc.info integration
|
|
52
|
+
- Added Rake tasks for generating docs (`rake yard`)
|
|
53
|
+
|
|
54
|
+
### Code Quality
|
|
55
|
+
|
|
56
|
+
- **RuboCop compliance** - Zero offenses across entire codebase
|
|
57
|
+
- Configured appropriate exclusions for test files and acceptable patterns
|
|
58
|
+
- Fixed all auto-correctable style violations
|
|
59
|
+
- Added clear comments for non-correctable patterns
|
|
60
|
+
|
|
8
61
|
## [3.0.0] - 2025-11-23
|
|
9
62
|
|
|
10
63
|
### Added
|
|
@@ -134,7 +187,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
134
187
|
- Better error messages
|
|
135
188
|
- More robust subject matching
|
|
136
189
|
|
|
137
|
-
### Documentation
|
|
190
|
+
### Documentation Updates
|
|
138
191
|
|
|
139
192
|
- **Updated README** - Comprehensive documentation updates
|
|
140
193
|
- Added section for Rails generators and rake tasks
|