karafka 2.5.3 → 2.5.4.rc1

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 (70) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +10 -0
  3. data/config/locales/errors.yml +14 -0
  4. data/karafka.gemspec +13 -2
  5. data/lib/karafka/admin/contracts/replication.rb +149 -0
  6. data/lib/karafka/admin/replication.rb +462 -0
  7. data/lib/karafka/admin.rb +47 -2
  8. data/lib/karafka/instrumentation/logger_listener.rb +0 -2
  9. data/lib/karafka/instrumentation/vendors/appsignal/metrics_listener.rb +4 -0
  10. data/lib/karafka/instrumentation/vendors/datadog/logger_listener.rb +31 -15
  11. data/lib/karafka/licenser.rb +1 -1
  12. data/lib/karafka/messages/messages.rb +32 -0
  13. data/lib/karafka/pro/cleaner/messages/messages.rb +1 -1
  14. data/lib/karafka/pro/processing/jobs_queue.rb +0 -2
  15. data/lib/karafka/pro/processing/strategies/dlq/default.rb +1 -1
  16. data/lib/karafka/pro/processing/strategies/vp/default.rb +1 -1
  17. data/lib/karafka/processing/strategies/dlq.rb +1 -1
  18. data/lib/karafka/routing/consumer_group.rb +19 -1
  19. data/lib/karafka/routing/subscription_group.rb +1 -1
  20. data/lib/karafka/routing/subscription_groups_builder.rb +17 -2
  21. data/lib/karafka/version.rb +1 -1
  22. data/lib/karafka.rb +0 -1
  23. metadata +3 -62
  24. data/.coditsu/ci.yml +0 -3
  25. data/.console_irbrc +0 -11
  26. data/.github/CODEOWNERS +0 -3
  27. data/.github/FUNDING.yml +0 -1
  28. data/.github/ISSUE_TEMPLATE/bug_report.md +0 -43
  29. data/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
  30. data/.github/workflows/ci_linux_ubuntu_x86_64_gnu.yml +0 -296
  31. data/.github/workflows/ci_macos_arm64.yml +0 -151
  32. data/.github/workflows/push.yml +0 -35
  33. data/.github/workflows/trigger-wiki-refresh.yml +0 -30
  34. data/.github/workflows/verify-action-pins.yml +0 -16
  35. data/.gitignore +0 -69
  36. data/.rspec +0 -7
  37. data/.ruby-gemset +0 -1
  38. data/.ruby-version +0 -1
  39. data/.yard-lint.yml +0 -174
  40. data/CODE_OF_CONDUCT.md +0 -46
  41. data/CONTRIBUTING.md +0 -32
  42. data/Gemfile +0 -29
  43. data/Gemfile.lock +0 -178
  44. data/Rakefile +0 -4
  45. data/SECURITY.md +0 -23
  46. data/bin/benchmarks +0 -99
  47. data/bin/clean_kafka +0 -43
  48. data/bin/create_token +0 -22
  49. data/bin/integrations +0 -341
  50. data/bin/record_rss +0 -50
  51. data/bin/rspecs +0 -26
  52. data/bin/scenario +0 -29
  53. data/bin/stress_many +0 -13
  54. data/bin/stress_one +0 -13
  55. data/bin/verify_kafka_warnings +0 -36
  56. data/bin/verify_license_integrity +0 -37
  57. data/bin/verify_topics_naming +0 -27
  58. data/bin/wait_for_kafka +0 -24
  59. data/docker-compose.yml +0 -25
  60. data/examples/payloads/avro/.gitkeep +0 -0
  61. data/examples/payloads/json/sample_set_01/enrollment_event.json +0 -579
  62. data/examples/payloads/json/sample_set_01/ingestion_event.json +0 -30
  63. data/examples/payloads/json/sample_set_01/transaction_event.json +0 -17
  64. data/examples/payloads/json/sample_set_01/user_event.json +0 -11
  65. data/examples/payloads/json/sample_set_02/download.json +0 -191
  66. data/examples/payloads/json/sample_set_03/event_type_1.json +0 -18
  67. data/examples/payloads/json/sample_set_03/event_type_2.json +0 -263
  68. data/examples/payloads/json/sample_set_03/event_type_3.json +0 -41
  69. data/log/.gitkeep +0 -0
  70. data/renovate.json +0 -21
@@ -1,191 +0,0 @@
1
- {
2
- "audience_data_versions": {
3
- "s1_build_epoch": 1634594595,
4
- "s2_build_epoch": 1634093288,
5
- "s3_build_epoch": 1634095356
6
- },
7
- "combination_cache_hits": null,
8
- "content_insertion_info": {
9
- "ad_rep_account_revenue": {
10
- "code": "USD",
11
- "scale": "Nano",
12
- "value": 0
13
- },
14
- "ad_rep_account": {
15
- "id": "f8a3c7d2-9b41-4e56-a2f3-8d7c1b9e4a6f",
16
- "name": "AdOps_Beta"
17
- },
18
- "advertisement": {
19
- "duration": {
20
- "scale": "Micro",
21
- "value": 29022040
22
- },
23
- "external_identifier": null,
24
- "id": "a9e2f4b7-3c81-4d92-b5e6-7a4f8c2d1e9b",
25
- "title": "soda",
26
- "type": "TraditionalAd"
27
- },
28
- "platform_revenue": {
29
- "code": "USD",
30
- "scale": "Nano",
31
- "value": 0
32
- },
33
- "audience": null,
34
- "brand": {
35
- "id": "d4c8e1a9-7f62-4b3d-9e85-c2a7f4b9d1e6",
36
- "name": "Brand_Beta"
37
- },
38
- "campaign": {
39
- "id": "b7d3a5e8-4c91-4f2b-a6d9-1e8c7f3a5b4d",
40
- "title": "Pepsi Max",
41
- "frequency_counting_targets": null
42
- },
43
- "campaign_value": {
44
- "code": "USD",
45
- "scale": "Nano",
46
- "value": 500000
47
- },
48
- "normalized_campaign_value": {
49
- "code": "USD",
50
- "scale": "Nano",
51
- "value": 500000
52
- },
53
- "external_payload_id": "c5e9a2f7-8d41-4b36-9e72-a1f4c8b3d7e5",
54
- "marker_point": {
55
- "id": "e2f7c9a4-1d58-4b63-8e49-f7a3c2d8b1e6",
56
- "episode_version_id": "a8c4e7f2-9b31-4d65-b8a9-e3f7c1d4a2b6",
57
- "maximum_content_count": 1,
58
- "maximum_content_duration": {
59
- "scale": "Micro",
60
- "value": 120000000
61
- },
62
- "position_type": "Preroll",
63
- "position_sequence": 1
64
- },
65
- "position_sequence": 1,
66
- "series_revenue": {
67
- "code": "USD",
68
- "scale": "Nano",
69
- "value": 0
70
- }
71
- },
72
- "content_insertion_system_type": "ServerSide",
73
- "count": 1,
74
- "deduplication_keys": null,
75
- "distribution_characteristic_id": "c9e3f2a7-4d81-4b56-9e73-a8f2c4d1b7e6",
76
- "distribution_identification_method_id": "f7a2c8e4-9b31-4d65-8e49-b3f7a1c2d9e8",
77
- "episode": {
78
- "created_at": 1698698168000,
79
- "capacities": [
80
- {
81
- "position_type": "Preroll",
82
- "count": 1,
83
- "duration": 120
84
- },
85
- {
86
- "position_type": "Midroll",
87
- "count": 0,
88
- "duration": 0
89
- },
90
- {
91
- "position_type": "Postroll",
92
- "count": 0,
93
- "duration": 0
94
- }
95
- ],
96
- "duration": {
97
- "scale": "Micro",
98
- "value": 4204747760
99
- },
100
- "episode_number": null,
101
- "id": "d8e2a7f4-9c51-4b36-a8e2-f7c4d1b9a3e6",
102
- "title": "Mountain Breeze",
103
- "episode_version_id": "a8c4e7f2-9b31-4d65-b8a9-e3f7c1d4a2b6"
104
- },
105
- "feed": {
106
- "id": "b4f9c7e2-8a31-4d56-9e82-a7f3c1d4b8e9",
107
- "type": null
108
- },
109
- "feed_item": {
110
- "id": "d8e2a7f4-9c51-4b36-a8e2-f7c4d1b9a3e6"
111
- },
112
- "id": "e7c2f9a4-8d31-4b65-9e78-a3f4c7d2b1e9",
113
- "listened_at": 1747928515000000,
114
- "listened_at_ms": 1747928515000,
115
- "listener": {
116
- "connection_type": "Cellular",
117
- "ip_address": "172.58.243.167",
118
- "ip_address_encryption_format": "None",
119
- "isp": {
120
- "as_organization": "WIRELESS-MOBILE",
121
- "asn": 8445,
122
- "name": "Random Telecom",
123
- "organization": "Random Telecom"
124
- },
125
- "location": {
126
- "continent": {
127
- "code": "NA",
128
- "geoname_id": 6255149,
129
- "name": "North America"
130
- },
131
- "country": {
132
- "code": "US",
133
- "geoname_id": 6252001
134
- },
135
- "designated_market_area": {
136
- "code": "524",
137
- "name": "Atlanta, GA"
138
- },
139
- "is_in_eu": null,
140
- "locality": {
141
- "geoname_id": 4180439,
142
- "name": "Atlanta"
143
- },
144
- "region": {
145
- "geoname_id": 4197000,
146
- "name": "Georgia"
147
- },
148
- "lat": 33.748997,
149
- "lng": -84.387985,
150
- "postal_code": "20309"
151
- },
152
- "rss_browser": null,
153
- "time_zone": "America/New_York",
154
- "user_agent": {
155
- "browser": "Safari",
156
- "mobile": true,
157
- "operating_system": "iOS",
158
- "platform": null,
159
- "user_agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.5 Mobile/15E148 Safari/604.1",
160
- "user_agent_hash": "9k742p/X5m"
161
- }
162
- },
163
- "network": null,
164
- "playback_group_id": "f9c3e7a2-8d41-4b56-9e73-a8f2c4d1b7e6",
165
- "request_duration": 0,
166
- "request_headers": {
167
- "SERVER_PORT": "80",
168
- "SERVER_PROTOCOL": "HTTP/1.1",
169
- "REMOTE_ADDR": "172.58.243.167",
170
- "ORIGINAL_SCRIPT_NAME": "",
171
- "HTTP_VERSION": "HTTP/1.1",
172
- "HTTP_HOST": "foo.bar.com",
173
- "REQUEST_METHOD": "GET",
174
- "HTTP_ACCEPT": "*/*",
175
- "SCRIPT_NAME": "",
176
- "HTTP_USER_AGENT": "Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.5 Mobile/15E148 Safari/604.1",
177
- "REQUEST_PATH": "/paths/d8e2a7f4-9c51-4b36-a8e2-f7c4d1b9a3e6",
178
- "HTTP_CONNECTION": "close"
179
- },
180
- "rejection_status": "NotRejected",
181
- "root_network": null,
182
- "season": null,
183
- "series": {
184
- "id": "c8e4a7f2-9b31-4d65-8e49-b3f7a1c2d9e8",
185
- "title": "Podcast"
186
- },
187
- "session_id": "a7f2c9e4-8d31-4b56-9e73-a8f4c2d1b7e6",
188
- "statistics_system": "TwentyFourHourWindows",
189
- "tracking_id": "b9e3f7a2-4c81-4d56-9e78-a3f4c7d2b1e9",
190
- "tracking_id_source": "UniqueClientAttributes"
191
- }
@@ -1,18 +0,0 @@
1
- {
2
- "connect.name": "production.public.automation_actions.Key",
3
- "fields": [
4
- {
5
- "default": "00000000-0000-0000-0000-000000000000",
6
- "name": "id",
7
- "type": {
8
- "connect.default": "00000000-0000-0000-0000-000000000000",
9
- "connect.name": "io.debezium.data.Uuid",
10
- "connect.version": 1,
11
- "type": "string"
12
- }
13
- }
14
- ],
15
- "name": "Key",
16
- "namespace": "production.public.automation_actions",
17
- "type": "record"
18
- }
@@ -1,263 +0,0 @@
1
- {
2
- "connect.name": "production.public.automation_actions.Envelope",
3
- "connect.version": 1,
4
- "fields": [
5
- {
6
- "default": null,
7
- "name": "before",
8
- "type": [
9
- "null",
10
- {
11
- "connect.name": "production.public.automation_actions.Value",
12
- "fields": [
13
- {
14
- "default": "00000000-0000-0000-0000-000000000000",
15
- "name": "id",
16
- "type": {
17
- "connect.default": "00000000-0000-0000-0000-000000000000",
18
- "connect.name": "io.debezium.data.Uuid",
19
- "connect.version": 1,
20
- "type": "string"
21
- }
22
- },
23
- {
24
- "name": "automation_id",
25
- "type": "int"
26
- },
27
- {
28
- "default": null,
29
- "name": "card_id",
30
- "type": [
31
- "null",
32
- "int"
33
- ]
34
- },
35
- {
36
- "name": "organization_id",
37
- "type": "int"
38
- },
39
- {
40
- "default": null,
41
- "name": "user_id",
42
- "type": [
43
- "null",
44
- "int"
45
- ]
46
- },
47
- {
48
- "name": "action_name",
49
- "type": "string"
50
- },
51
- {
52
- "default": null,
53
- "name": "finished_at",
54
- "type": [
55
- "null",
56
- {
57
- "connect.name": "io.debezium.time.MicroTimestamp",
58
- "connect.version": 1,
59
- "type": "long"
60
- }
61
- ]
62
- },
63
- {
64
- "default": 0,
65
- "name": "status",
66
- "type": [
67
- {
68
- "connect.default": 0,
69
- "type": "int"
70
- },
71
- "null"
72
- ]
73
- },
74
- {
75
- "default": null,
76
- "name": "deleted_at",
77
- "type": [
78
- "null",
79
- {
80
- "connect.name": "io.debezium.time.MicroTimestamp",
81
- "connect.version": 1,
82
- "type": "long"
83
- }
84
- ]
85
- },
86
- {
87
- "name": "created_at",
88
- "type": {
89
- "connect.name": "io.debezium.time.MicroTimestamp",
90
- "connect.version": 1,
91
- "type": "long"
92
- }
93
- },
94
- {
95
- "name": "updated_at",
96
- "type": {
97
- "connect.name": "io.debezium.time.MicroTimestamp",
98
- "connect.version": 1,
99
- "type": "long"
100
- }
101
- },
102
- {
103
- "default": null,
104
- "name": "response",
105
- "type": [
106
- "null",
107
- "string"
108
- ]
109
- },
110
- {
111
- "default": null,
112
- "name": "executed",
113
- "type": [
114
- "null",
115
- "boolean"
116
- ]
117
- }
118
- ],
119
- "name": "Value",
120
- "type": "record"
121
- }
122
- ]
123
- },
124
- {
125
- "default": null,
126
- "name": "after",
127
- "type": [
128
- "null",
129
- "Value"
130
- ]
131
- },
132
- {
133
- "name": "source",
134
- "type": {
135
- "connect.name": "io.debezium.connector.v2.postgresql.Source",
136
- "fields": [
137
- {
138
- "name": "version",
139
- "type": "string"
140
- },
141
- {
142
- "name": "connector",
143
- "type": "string"
144
- },
145
- {
146
- "name": "name",
147
- "type": "string"
148
- },
149
- {
150
- "name": "ts_ms",
151
- "type": "long"
152
- },
153
- {
154
- "default": "false",
155
- "name": "snapshot",
156
- "type": [
157
- {
158
- "connect.default": "false",
159
- "connect.name": "io.debezium.data.Enum",
160
- "connect.parameters": {
161
- "allowed": "true,last,false,incremental"
162
- },
163
- "connect.version": 1,
164
- "type": "string"
165
- },
166
- "null"
167
- ]
168
- },
169
- {
170
- "name": "db",
171
- "type": "string"
172
- },
173
- {
174
- "default": null,
175
- "name": "sequence",
176
- "type": [
177
- "null",
178
- "string"
179
- ]
180
- },
181
- {
182
- "name": "schema",
183
- "type": "string"
184
- },
185
- {
186
- "name": "table",
187
- "type": "string"
188
- },
189
- {
190
- "default": null,
191
- "name": "txId",
192
- "type": [
193
- "null",
194
- "long"
195
- ]
196
- },
197
- {
198
- "default": null,
199
- "name": "lsn",
200
- "type": [
201
- "null",
202
- "long"
203
- ]
204
- },
205
- {
206
- "default": null,
207
- "name": "xmin",
208
- "type": [
209
- "null",
210
- "long"
211
- ]
212
- }
213
- ],
214
- "name": "Source",
215
- "namespace": "io.debezium.connector.v2.postgresql",
216
- "type": "record"
217
- }
218
- },
219
- {
220
- "name": "op",
221
- "type": "string"
222
- },
223
- {
224
- "default": null,
225
- "name": "ts_ms",
226
- "type": [
227
- "null",
228
- "long"
229
- ]
230
- },
231
- {
232
- "default": null,
233
- "name": "transaction",
234
- "type": [
235
- "null",
236
- {
237
- "connect.name": "event.block",
238
- "connect.version": 1,
239
- "fields": [
240
- {
241
- "name": "id",
242
- "type": "string"
243
- },
244
- {
245
- "name": "total_order",
246
- "type": "long"
247
- },
248
- {
249
- "name": "data_collection_order",
250
- "type": "long"
251
- }
252
- ],
253
- "name": "block",
254
- "namespace": "event",
255
- "type": "record"
256
- }
257
- ]
258
- }
259
- ],
260
- "name": "Envelope",
261
- "namespace": "production.public.automation_actions",
262
- "type": "record"
263
- }
@@ -1,41 +0,0 @@
1
- [
2
- {
3
- "timestamp": 1111111111111,
4
- "timestampType": "TYPE",
5
- "partition": 0,
6
- "offset": 0,
7
- "key": "0000000000000000000000000000000000000000000000000000000000000000",
8
- "value": {
9
- "id": "0000000000000000000000000000000000000000000000000000000000000000",
10
- "type": "event_type",
11
- "data": {
12
- "user_id": 123456789,
13
- "user_email": "user@example.com",
14
- "org_id": 987654321,
15
- "token_id": 111111111,
16
- "token_type": "token_type",
17
- "request_id": "request-id",
18
- "request_host": "api.example.com",
19
- "request_path": "/some/path",
20
- "remote_ip": "0.0.0.0",
21
- "request_graphql": true,
22
- "user_agent": "client-library/x.y.z",
23
- "request_method": "METHOD",
24
- "graphql_data": {
25
- "errored": false,
26
- "complexity": 0,
27
- "depth": 0,
28
- "operation_name": null,
29
- "operation_type": "operation",
30
- "resources": ["resource"]
31
- },
32
- "response_code": "200",
33
- "type": "custom"
34
- },
35
- "source": "some-source",
36
- "version": 1,
37
- "timestamp": "1111111111111"
38
- },
39
- "headers": []
40
- }
41
- ]
data/log/.gitkeep DELETED
File without changes
data/renovate.json DELETED
@@ -1,21 +0,0 @@
1
- {
2
- "$schema": "https://docs.renovatebot.com/renovate-schema.json",
3
- "extends": [
4
- "config:recommended"
5
- ],
6
- "ignorePaths": [
7
- "spec/integrations"
8
- ],
9
- "github-actions": {
10
- "enabled": true,
11
- "pinDigests": true
12
- },
13
- "packageRules": [
14
- {
15
- "matchManagers": [
16
- "github-actions"
17
- ],
18
- "minimumReleaseAge": "7 days"
19
- }
20
- ]
21
- }