julewire-karafka 1.0.0 → 1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 32290d2a9bb3d886763322d94fded8636dfe961d1c5378a265293acb36d7b932
4
- data.tar.gz: 131b772cff7114eed297cebfa075c785c8b7bfc2afbb480684aab813acefc763
3
+ metadata.gz: 2348fa4e2f74ae14416481646fb82ca838306ba5f637b3ee21d38d8e25d7f1c3
4
+ data.tar.gz: 937a2babb22b4ed2bcc277c12d008568646a0dcef77dac25cbfb9c829b516c57
5
5
  SHA512:
6
- metadata.gz: 56184e4abdb26392059b31b5f29323311c331374350d1c88969f98ce3fb3e4c8d3c1eb2d4dd26913244245777236f5d3d1e796ba661b65c354ac499b62088da8
7
- data.tar.gz: 2693077aabaa0e6ad1bd28e9fe176e533e8e860d244fcc943a3a632a34b4972270713206bf594ad72f5c72206a82ed305882cbed3906bd744a5a6970694bbbe6
6
+ metadata.gz: c1ea911dce21f4ae508f70f8a8d47a9beebe35c44d235ca3d0e5a27753996634ca15f123b4c431f04c4f3fadfe1c2d1d63adfe79bdb56cf11c3a03cb45dfb516
7
+ data.tar.gz: db66dcbf0c4faaccd8b10a1240bdb045f307ddbc842bf375d5e2718119edef8cf5411164e58afe9c3a3e9330c0cacc8c8541d6e90ef027ad1abd8feaa1a6b314
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  ## Unreleased
2
2
 
3
+ ## 1.0.1 - 2026-06-25
4
+
5
+ - Default propagation carrier byte limits to 64 KiB and record health when
6
+ oversized or malformed message carriers are ignored on restore.
7
+ - Require julewire-core 1.0.1.
8
+
3
9
  ## 1.0.0 - 2026-06-21
4
10
 
5
11
  - Initial release: Karafka and WaterDrop event capture, message execution
@@ -14,7 +14,7 @@
14
14
 
15
15
  | Option | Default | Purpose |
16
16
  | --- | --- | --- |
17
- | `carrier_max_bytes` | `nil` | Omit oversized carriers from Kafka headers. |
17
+ | `carrier_max_bytes` | `65_536` | Omit oversized carriers from Kafka headers. |
18
18
  | `carrier_filter` | `nil` | Optional inbound header filter before restoring a message carrier. |
19
19
  | `consumer_event_names` | `:important` | Consumer monitor event profile or explicit event list. |
20
20
  | `producer_event_names` | `:important` | Producer monitor event profile or explicit event list. |
data/docs/waterdrop.md CHANGED
@@ -16,9 +16,9 @@ its registered events, `:all` uses the important profile. WaterDrop event
16
16
  severity is read from the event payload when present; otherwise errors are
17
17
  error and normal producer events are info.
18
18
 
19
- Set `carrier_max_bytes` to omit oversized propagation carriers from Kafka
20
- headers. When omitted, the message is still produced normally; it just does not
21
- carry upstream Julewire context.
19
+ `carrier_max_bytes` defaults to `65_536`. Oversized propagation carriers are
20
+ omitted from Kafka headers and ignored on restore. The message still moves
21
+ normally; it just does not carry upstream Julewire context.
22
22
 
23
23
  Message keys, headers, and payload fields are raw unless an application installs
24
24
  a processor policy before output.
@@ -34,7 +34,7 @@ Gem::Specification.new do |spec|
34
34
  spec.executables = []
35
35
  spec.require_paths = ["lib"]
36
36
 
37
- spec.add_dependency "julewire-core", ">= 1.0"
37
+ spec.add_dependency "julewire-core", ">= 1.0.1"
38
38
  spec.add_dependency "karafka", ">= 2.5"
39
39
  spec.add_dependency "waterdrop", ">= 2.10"
40
40
  spec.add_dependency "zeitwerk", ">= 2.8.1"
@@ -43,7 +43,8 @@ module Julewire
43
43
  setting :propagation, default: true, predicate: true
44
44
  setting :carrier_filter
45
45
  setting :carrier_key, default: Julewire::Core::Propagation::Carrier::DEFAULT_KEY
46
- setting :carrier_max_bytes, validate: byte_limit
46
+ setting :carrier_max_bytes, default: Julewire::Core::Propagation::Carrier::DEFAULT_MAX_BYTES,
47
+ validate: byte_limit
47
48
  setting :source, default: "karafka"
48
49
  setting :consumer_event_names, default: :important
49
50
  setting :producer_event_names, default: :important
@@ -10,7 +10,14 @@ module Julewire
10
10
  fields ||= PayloadReader.message_payload(message)
11
11
  carrier = carrier_for(fields, configuration)
12
12
 
13
- Julewire::Core::Propagation::Carrier.restore(carrier, key: configuration.carrier_key) do
13
+ result = Julewire::Core::Propagation::Carrier.extract_result(
14
+ carrier,
15
+ key: configuration.carrier_key,
16
+ max_bytes: configuration.carrier_max_bytes
17
+ )
18
+ record_carrier_restore_failure(result)
19
+
20
+ Julewire::Core::Propagation.restore(result.envelope, owned: true) do
14
21
  Julewire::Core::Integration::Facade.with_neutral(message_neutral(fields)) do
15
22
  Julewire::Core::Integration::Facade.with_attributes(message_attributes(fields), &)
16
23
  end
@@ -19,6 +26,18 @@ module Julewire
19
26
 
20
27
  private
21
28
 
29
+ def record_carrier_restore_failure(result)
30
+ return unless result.failure?
31
+
32
+ IntegrationHealth.record_failure(
33
+ result.error,
34
+ action: :carrier_restore,
35
+ component: :message_context,
36
+ status: result.status,
37
+ reason: result.reason
38
+ )
39
+ end
40
+
22
41
  def carrier_for(fields, configuration)
23
42
  return {} unless configuration.propagation?
24
43
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Julewire
4
4
  module Karafka
5
- VERSION = "1.0.0"
5
+ VERSION = "1.0.1"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: julewire-karafka
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Grebennik
@@ -15,14 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - ">="
17
17
  - !ruby/object:Gem::Version
18
- version: '1.0'
18
+ version: 1.0.1
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - ">="
24
24
  - !ruby/object:Gem::Version
25
- version: '1.0'
25
+ version: 1.0.1
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: karafka
28
28
  requirement: !ruby/object:Gem::Requirement