karafka 2.4.8 → 2.4.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (88) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/.github/workflows/ci.yml +0 -1
  4. data/.ruby-version +1 -1
  5. data/CHANGELOG.md +17 -0
  6. data/Gemfile +8 -5
  7. data/Gemfile.lock +24 -15
  8. data/bin/integrations +5 -0
  9. data/certs/cert.pem +26 -0
  10. data/config/locales/errors.yml +5 -0
  11. data/config/locales/pro_errors.yml +34 -0
  12. data/karafka.gemspec +1 -1
  13. data/lib/karafka/admin.rb +42 -0
  14. data/lib/karafka/base_consumer.rb +23 -0
  15. data/lib/karafka/contracts/config.rb +2 -0
  16. data/lib/karafka/contracts/consumer_group.rb +17 -0
  17. data/lib/karafka/errors.rb +3 -2
  18. data/lib/karafka/instrumentation/logger_listener.rb +3 -0
  19. data/lib/karafka/instrumentation/notifications.rb +3 -0
  20. data/lib/karafka/instrumentation/vendors/appsignal/client.rb +32 -11
  21. data/lib/karafka/instrumentation/vendors/appsignal/errors_listener.rb +1 -1
  22. data/lib/karafka/messages/message.rb +6 -0
  23. data/lib/karafka/pro/loader.rb +3 -1
  24. data/lib/karafka/pro/processing/strategies/dlq/default.rb +16 -1
  25. data/lib/karafka/pro/processing/strategies/dlq/ftr_lrj_mom.rb +5 -1
  26. data/lib/karafka/pro/processing/strategies/dlq/ftr_mom.rb +17 -1
  27. data/lib/karafka/pro/processing/strategies/dlq/lrj_mom.rb +17 -1
  28. data/lib/karafka/pro/processing/strategies/dlq/mom.rb +22 -6
  29. data/lib/karafka/pro/recurring_tasks/consumer.rb +105 -0
  30. data/lib/karafka/pro/recurring_tasks/contracts/config.rb +53 -0
  31. data/lib/karafka/pro/recurring_tasks/contracts/task.rb +41 -0
  32. data/lib/karafka/pro/recurring_tasks/deserializer.rb +35 -0
  33. data/lib/karafka/pro/recurring_tasks/dispatcher.rb +87 -0
  34. data/lib/karafka/pro/recurring_tasks/errors.rb +34 -0
  35. data/lib/karafka/pro/recurring_tasks/executor.rb +152 -0
  36. data/lib/karafka/pro/recurring_tasks/listener.rb +38 -0
  37. data/lib/karafka/pro/recurring_tasks/matcher.rb +38 -0
  38. data/lib/karafka/pro/recurring_tasks/schedule.rb +63 -0
  39. data/lib/karafka/pro/recurring_tasks/serializer.rb +113 -0
  40. data/lib/karafka/pro/recurring_tasks/setup/config.rb +52 -0
  41. data/lib/karafka/pro/recurring_tasks/task.rb +151 -0
  42. data/lib/karafka/pro/recurring_tasks.rb +87 -0
  43. data/lib/karafka/pro/routing/features/recurring_tasks/builder.rb +131 -0
  44. data/lib/karafka/pro/routing/features/recurring_tasks/config.rb +28 -0
  45. data/lib/karafka/pro/routing/features/recurring_tasks/contracts/topic.rb +40 -0
  46. data/lib/karafka/pro/routing/features/recurring_tasks/proxy.rb +27 -0
  47. data/lib/karafka/pro/routing/features/recurring_tasks/topic.rb +44 -0
  48. data/lib/karafka/pro/routing/features/recurring_tasks.rb +25 -0
  49. data/lib/karafka/pro/routing/features/scheduled_messages/builder.rb +131 -0
  50. data/lib/karafka/pro/routing/features/scheduled_messages/config.rb +28 -0
  51. data/lib/karafka/pro/routing/features/scheduled_messages/contracts/topic.rb +40 -0
  52. data/lib/karafka/pro/routing/features/scheduled_messages/proxy.rb +27 -0
  53. data/lib/karafka/pro/routing/features/scheduled_messages/topic.rb +44 -0
  54. data/lib/karafka/pro/routing/features/scheduled_messages.rb +24 -0
  55. data/lib/karafka/pro/scheduled_messages/consumer.rb +185 -0
  56. data/lib/karafka/pro/scheduled_messages/contracts/config.rb +56 -0
  57. data/lib/karafka/pro/scheduled_messages/contracts/message.rb +61 -0
  58. data/lib/karafka/pro/scheduled_messages/daily_buffer.rb +79 -0
  59. data/lib/karafka/pro/scheduled_messages/day.rb +45 -0
  60. data/lib/karafka/pro/scheduled_messages/deserializers/headers.rb +46 -0
  61. data/lib/karafka/pro/scheduled_messages/deserializers/payload.rb +35 -0
  62. data/lib/karafka/pro/scheduled_messages/dispatcher.rb +122 -0
  63. data/lib/karafka/pro/scheduled_messages/errors.rb +28 -0
  64. data/lib/karafka/pro/scheduled_messages/max_epoch.rb +41 -0
  65. data/lib/karafka/pro/scheduled_messages/proxy.rb +176 -0
  66. data/lib/karafka/pro/scheduled_messages/schema_validator.rb +37 -0
  67. data/lib/karafka/pro/scheduled_messages/serializer.rb +55 -0
  68. data/lib/karafka/pro/scheduled_messages/setup/config.rb +60 -0
  69. data/lib/karafka/pro/scheduled_messages/state.rb +62 -0
  70. data/lib/karafka/pro/scheduled_messages/tracker.rb +64 -0
  71. data/lib/karafka/pro/scheduled_messages.rb +67 -0
  72. data/lib/karafka/processing/executor.rb +6 -0
  73. data/lib/karafka/processing/strategies/default.rb +10 -0
  74. data/lib/karafka/processing/strategies/dlq.rb +16 -2
  75. data/lib/karafka/processing/strategies/dlq_mom.rb +25 -6
  76. data/lib/karafka/processing/worker.rb +11 -1
  77. data/lib/karafka/railtie.rb +11 -42
  78. data/lib/karafka/routing/features/dead_letter_queue/config.rb +3 -0
  79. data/lib/karafka/routing/features/dead_letter_queue/contracts/topic.rb +1 -0
  80. data/lib/karafka/routing/features/dead_letter_queue/topic.rb +7 -2
  81. data/lib/karafka/routing/features/eofed/contracts/topic.rb +12 -0
  82. data/lib/karafka/routing/topic.rb +14 -0
  83. data/lib/karafka/setup/config.rb +3 -0
  84. data/lib/karafka/version.rb +1 -1
  85. data.tar.gz.sig +0 -0
  86. metadata +68 -25
  87. metadata.gz.sig +0 -0
  88. data/certs/cert_chain.pem +0 -26
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: karafka
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.8
4
+ version: 2.4.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maciej Mensfeld
@@ -12,30 +12,30 @@ cert_chain:
12
12
  -----BEGIN CERTIFICATE-----
13
13
  MIIEcDCCAtigAwIBAgIBATANBgkqhkiG9w0BAQsFADA/MRAwDgYDVQQDDAdjb250
14
14
  YWN0MRcwFQYKCZImiZPyLGQBGRYHa2FyYWZrYTESMBAGCgmSJomT8ixkARkWAmlv
15
- MB4XDTIzMDgyMTA3MjU1NFoXDTI0MDgyMDA3MjU1NFowPzEQMA4GA1UEAwwHY29u
15
+ MB4XDTI0MDgyMzEwMTkyMFoXDTQ5MDgxNzEwMTkyMFowPzEQMA4GA1UEAwwHY29u
16
16
  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
- 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
- 8bUaNuNBEnouTsNMr6X+XTgvyrAxTuocdsyP1sNCjdS1B8RiiDH1/Nt9qpvlBWon
19
- sdJ1SYhaWNVfqiYStTDnCx3PRMmHRdD4KqUWKpN6VpZ1O/Zu+9Mw0COmvXgZuuO9
20
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
37
37
  -----END CERTIFICATE-----
38
- date: 2024-08-09 00:00:00.000000000 Z
38
+ date: 2024-09-03 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: base64
@@ -163,7 +163,7 @@ files:
163
163
  - bin/stress_one
164
164
  - bin/verify_license_integrity
165
165
  - bin/wait_for_kafka
166
- - certs/cert_chain.pem
166
+ - certs/cert.pem
167
167
  - certs/karafka-pro.pem
168
168
  - config/locales/errors.yml
169
169
  - config/locales/pro_errors.yml
@@ -370,6 +370,20 @@ files:
370
370
  - lib/karafka/pro/processing/strategies/vp/default.rb
371
371
  - lib/karafka/pro/processing/strategy_selector.rb
372
372
  - lib/karafka/pro/processing/subscription_groups_coordinator.rb
373
+ - lib/karafka/pro/recurring_tasks.rb
374
+ - lib/karafka/pro/recurring_tasks/consumer.rb
375
+ - lib/karafka/pro/recurring_tasks/contracts/config.rb
376
+ - lib/karafka/pro/recurring_tasks/contracts/task.rb
377
+ - lib/karafka/pro/recurring_tasks/deserializer.rb
378
+ - lib/karafka/pro/recurring_tasks/dispatcher.rb
379
+ - lib/karafka/pro/recurring_tasks/errors.rb
380
+ - lib/karafka/pro/recurring_tasks/executor.rb
381
+ - lib/karafka/pro/recurring_tasks/listener.rb
382
+ - lib/karafka/pro/recurring_tasks/matcher.rb
383
+ - lib/karafka/pro/recurring_tasks/schedule.rb
384
+ - lib/karafka/pro/recurring_tasks/serializer.rb
385
+ - lib/karafka/pro/recurring_tasks/setup/config.rb
386
+ - lib/karafka/pro/recurring_tasks/task.rb
373
387
  - lib/karafka/pro/routing/features/active_job.rb
374
388
  - lib/karafka/pro/routing/features/active_job/builder.rb
375
389
  - lib/karafka/pro/routing/features/base.rb
@@ -434,6 +448,18 @@ files:
434
448
  - lib/karafka/pro/routing/features/periodic_job/config.rb
435
449
  - lib/karafka/pro/routing/features/periodic_job/contracts/topic.rb
436
450
  - lib/karafka/pro/routing/features/periodic_job/topic.rb
451
+ - lib/karafka/pro/routing/features/recurring_tasks.rb
452
+ - lib/karafka/pro/routing/features/recurring_tasks/builder.rb
453
+ - lib/karafka/pro/routing/features/recurring_tasks/config.rb
454
+ - lib/karafka/pro/routing/features/recurring_tasks/contracts/topic.rb
455
+ - lib/karafka/pro/routing/features/recurring_tasks/proxy.rb
456
+ - lib/karafka/pro/routing/features/recurring_tasks/topic.rb
457
+ - lib/karafka/pro/routing/features/scheduled_messages.rb
458
+ - lib/karafka/pro/routing/features/scheduled_messages/builder.rb
459
+ - lib/karafka/pro/routing/features/scheduled_messages/config.rb
460
+ - lib/karafka/pro/routing/features/scheduled_messages/contracts/topic.rb
461
+ - lib/karafka/pro/routing/features/scheduled_messages/proxy.rb
462
+ - lib/karafka/pro/routing/features/scheduled_messages/topic.rb
437
463
  - lib/karafka/pro/routing/features/swarm.rb
438
464
  - lib/karafka/pro/routing/features/swarm/config.rb
439
465
  - lib/karafka/pro/routing/features/swarm/contracts/routing.rb
@@ -447,6 +473,23 @@ files:
447
473
  - lib/karafka/pro/routing/features/virtual_partitions/config.rb
448
474
  - lib/karafka/pro/routing/features/virtual_partitions/contracts/topic.rb
449
475
  - lib/karafka/pro/routing/features/virtual_partitions/topic.rb
476
+ - lib/karafka/pro/scheduled_messages.rb
477
+ - lib/karafka/pro/scheduled_messages/consumer.rb
478
+ - lib/karafka/pro/scheduled_messages/contracts/config.rb
479
+ - lib/karafka/pro/scheduled_messages/contracts/message.rb
480
+ - lib/karafka/pro/scheduled_messages/daily_buffer.rb
481
+ - lib/karafka/pro/scheduled_messages/day.rb
482
+ - lib/karafka/pro/scheduled_messages/deserializers/headers.rb
483
+ - lib/karafka/pro/scheduled_messages/deserializers/payload.rb
484
+ - lib/karafka/pro/scheduled_messages/dispatcher.rb
485
+ - lib/karafka/pro/scheduled_messages/errors.rb
486
+ - lib/karafka/pro/scheduled_messages/max_epoch.rb
487
+ - lib/karafka/pro/scheduled_messages/proxy.rb
488
+ - lib/karafka/pro/scheduled_messages/schema_validator.rb
489
+ - lib/karafka/pro/scheduled_messages/serializer.rb
490
+ - lib/karafka/pro/scheduled_messages/setup/config.rb
491
+ - lib/karafka/pro/scheduled_messages/state.rb
492
+ - lib/karafka/pro/scheduled_messages/tracker.rb
450
493
  - lib/karafka/pro/swarm/liveness_listener.rb
451
494
  - lib/karafka/process.rb
452
495
  - lib/karafka/processing/coordinator.rb
@@ -570,7 +613,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
570
613
  - !ruby/object:Gem::Version
571
614
  version: '0'
572
615
  requirements: []
573
- rubygems_version: 3.5.11
616
+ rubygems_version: 3.5.16
574
617
  signing_key:
575
618
  specification_version: 4
576
619
  summary: Karafka is Ruby and Rails efficient Kafka processing framework.
metadata.gz.sig CHANGED
Binary file
data/certs/cert_chain.pem DELETED
@@ -1,26 +0,0 @@
1
- -----BEGIN CERTIFICATE-----
2
- MIIEcDCCAtigAwIBAgIBATANBgkqhkiG9w0BAQsFADA/MRAwDgYDVQQDDAdjb250
3
- YWN0MRcwFQYKCZImiZPyLGQBGRYHa2FyYWZrYTESMBAGCgmSJomT8ixkARkWAmlv
4
- MB4XDTIzMDgyMTA3MjU1NFoXDTI0MDgyMDA3MjU1NFowPzEQMA4GA1UEAwwHY29u
5
- dGFjdDEXMBUGCgmSJomT8ixkARkWB2thcmFma2ExEjAQBgoJkiaJk/IsZAEZFgJp
6
- bzCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAOuZpyQKEwsTG9plLat7
7
- 8bUaNuNBEnouTsNMr6X+XTgvyrAxTuocdsyP1sNCjdS1B8RiiDH1/Nt9qpvlBWon
8
- sdJ1SYhaWNVfqiYStTDnCx3PRMmHRdD4KqUWKpN6VpZ1O/Zu+9Mw0COmvXgZuuO9
9
- wMSJkXRo6dTCfMedLAIxjMeBIxtoLR2e6Jm6MR8+8WYYVWrO9kSOOt5eKQLBY7aK
10
- b/Dc40EcJKPg3Z30Pia1M9ZyRlb6SOj6SKpHRqc7vbVQxjEw6Jjal1lZ49m3YZMd
11
- ArMAs9lQZNdSw5/UX6HWWURLowg6k10RnhTUtYyzO9BFev0JFJftHnmuk8vtb+SD
12
- 5VPmjFXg2VOcw0B7FtG75Vackk8QKfgVe3nSPhVpew2CSPlbJzH80wChbr19+e3+
13
- YGr1tOiaJrL6c+PNmb0F31NXMKpj/r+n15HwlTMRxQrzFcgjBlxf2XFGnPQXHhBm
14
- kp1OFnEq4GG9sON4glRldkwzi/f/fGcZmo5fm3d+0ZdNgwIDAQABo3cwdTAJBgNV
15
- HRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUPVH5+dLA80A1kJ2Uz5iGwfOa
16
- 1+swHQYDVR0RBBYwFIESY29udGFjdEBrYXJhZmthLmlvMB0GA1UdEgQWMBSBEmNv
17
- bnRhY3RAa2FyYWZrYS5pbzANBgkqhkiG9w0BAQsFAAOCAYEAnpa0jcN7JzREHMTQ
18
- bfZ+xcvlrzuROMY6A3zIZmQgbnoZZNuX4cMRrT1p1HuwXpxdpHPw7dDjYqWw3+1h
19
- 3mXLeMuk7amjQpYoSWU/OIZMhIsARra22UN8qkkUlUj3AwTaChVKN/bPJOM2DzfU
20
- kz9vUgLeYYFfQbZqeI6SsM7ltilRV4W8D9yNUQQvOxCFxtLOetJ00fC/E7zMUzbK
21
- IBwYFQYsbI6XQzgAIPW6nGSYKgRhkfpmquXSNKZRIQ4V6bFrufa+DzD0bt2ZA3ah
22
- fMmJguyb5L2Gf1zpDXzFSPMG7YQFLzwYz1zZZvOU7/UCpQsHpID/YxqDp4+Dgb+Y
23
- qma0whX8UG/gXFV2pYWpYOfpatvahwi+A1TwPQsuZwkkhi1OyF1At3RY+hjSXyav
24
- AnG1dJU+yL2BK7vaVytLTstJME5mepSZ46qqIJXMuWob/YPDmVaBF39TDSG9e34s
25
- msG3BiCqgOgHAnL23+CN3Rt8MsuRfEtoTKpJVcCfoEoNHOkc
26
- -----END CERTIFICATE-----