karafka 1.0.1 → 1.4.14

Sign up to get free protection for your applications and to get access to all the features.
Files changed (121) hide show
  1. checksums.yaml +5 -5
  2. checksums.yaml.gz.sig +0 -0
  3. data/.coditsu/ci.yml +3 -0
  4. data/.console_irbrc +1 -3
  5. data/.diffend.yml +3 -0
  6. data/.github/ISSUE_TEMPLATE/bug_report.md +50 -0
  7. data/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  8. data/.github/workflows/ci.yml +76 -0
  9. data/.gitignore +1 -0
  10. data/.ruby-version +1 -1
  11. data/CHANGELOG.md +286 -16
  12. data/CODE_OF_CONDUCT.md +1 -1
  13. data/CONTRIBUTING.md +6 -7
  14. data/Gemfile +5 -2
  15. data/Gemfile.lock +100 -103
  16. data/README.md +54 -74
  17. data/bin/karafka +1 -1
  18. data/certs/mensfeld.pem +26 -0
  19. data/config/errors.yml +40 -5
  20. data/docker-compose.yml +17 -0
  21. data/karafka.gemspec +31 -15
  22. data/lib/karafka/app.rb +19 -18
  23. data/lib/karafka/assignment_strategies/round_robin.rb +13 -0
  24. data/lib/karafka/attributes_map.rb +17 -21
  25. data/lib/karafka/backends/inline.rb +2 -3
  26. data/lib/karafka/base_consumer.rb +57 -0
  27. data/lib/karafka/base_responder.rb +77 -31
  28. data/lib/karafka/cli/base.rb +4 -4
  29. data/lib/karafka/cli/console.rb +11 -9
  30. data/lib/karafka/cli/flow.rb +9 -7
  31. data/lib/karafka/cli/info.rb +5 -4
  32. data/lib/karafka/cli/install.rb +32 -8
  33. data/lib/karafka/cli/missingno.rb +19 -0
  34. data/lib/karafka/cli/server.rb +18 -16
  35. data/lib/karafka/cli.rb +10 -2
  36. data/lib/karafka/code_reloader.rb +67 -0
  37. data/lib/karafka/connection/{config_adapter.rb → api_adapter.rb} +71 -22
  38. data/lib/karafka/connection/batch_delegator.rb +55 -0
  39. data/lib/karafka/connection/builder.rb +23 -0
  40. data/lib/karafka/connection/client.rb +120 -0
  41. data/lib/karafka/connection/listener.rb +39 -26
  42. data/lib/karafka/connection/message_delegator.rb +36 -0
  43. data/lib/karafka/consumers/batch_metadata.rb +10 -0
  44. data/lib/karafka/consumers/callbacks.rb +71 -0
  45. data/lib/karafka/consumers/includer.rb +64 -0
  46. data/lib/karafka/consumers/responders.rb +24 -0
  47. data/lib/karafka/{controllers → consumers}/single_params.rb +3 -3
  48. data/lib/karafka/contracts/config.rb +21 -0
  49. data/lib/karafka/contracts/consumer_group.rb +211 -0
  50. data/lib/karafka/contracts/consumer_group_topic.rb +19 -0
  51. data/lib/karafka/contracts/responder_usage.rb +54 -0
  52. data/lib/karafka/contracts/server_cli_options.rb +31 -0
  53. data/lib/karafka/contracts.rb +10 -0
  54. data/lib/karafka/errors.rb +27 -12
  55. data/lib/karafka/fetcher.rb +15 -15
  56. data/lib/karafka/helpers/class_matcher.rb +20 -10
  57. data/lib/karafka/helpers/config_retriever.rb +3 -3
  58. data/lib/karafka/helpers/inflector.rb +26 -0
  59. data/lib/karafka/helpers/multi_delegator.rb +0 -1
  60. data/lib/karafka/instrumentation/logger.rb +54 -0
  61. data/lib/karafka/instrumentation/monitor.rb +70 -0
  62. data/lib/karafka/instrumentation/proctitle_listener.rb +36 -0
  63. data/lib/karafka/instrumentation/stdout_listener.rb +140 -0
  64. data/lib/karafka/params/batch_metadata.rb +26 -0
  65. data/lib/karafka/params/builders/batch_metadata.rb +30 -0
  66. data/lib/karafka/params/builders/params.rb +38 -0
  67. data/lib/karafka/params/builders/params_batch.rb +25 -0
  68. data/lib/karafka/params/metadata.rb +20 -0
  69. data/lib/karafka/params/params.rb +35 -107
  70. data/lib/karafka/params/params_batch.rb +38 -19
  71. data/lib/karafka/patches/ruby_kafka.rb +47 -0
  72. data/lib/karafka/persistence/client.rb +29 -0
  73. data/lib/karafka/persistence/consumers.rb +45 -0
  74. data/lib/karafka/persistence/topics.rb +48 -0
  75. data/lib/karafka/process.rb +6 -9
  76. data/lib/karafka/responders/builder.rb +15 -14
  77. data/lib/karafka/responders/topic.rb +14 -9
  78. data/lib/karafka/routing/builder.rb +38 -9
  79. data/lib/karafka/routing/consumer_group.rb +6 -4
  80. data/lib/karafka/routing/consumer_mapper.rb +10 -9
  81. data/lib/karafka/routing/proxy.rb +10 -1
  82. data/lib/karafka/routing/router.rb +1 -1
  83. data/lib/karafka/routing/topic.rb +8 -12
  84. data/lib/karafka/routing/topic_mapper.rb +16 -18
  85. data/lib/karafka/serialization/json/deserializer.rb +27 -0
  86. data/lib/karafka/serialization/json/serializer.rb +31 -0
  87. data/lib/karafka/server.rb +50 -39
  88. data/lib/karafka/setup/config.rb +138 -91
  89. data/lib/karafka/setup/configurators/water_drop.rb +21 -16
  90. data/lib/karafka/setup/dsl.rb +21 -0
  91. data/lib/karafka/status.rb +7 -3
  92. data/lib/karafka/templates/{application_controller.rb.example → application_consumer.rb.erb} +2 -2
  93. data/lib/karafka/templates/karafka.rb.erb +92 -0
  94. data/lib/karafka/version.rb +1 -1
  95. data/lib/karafka.rb +19 -15
  96. data.tar.gz.sig +0 -0
  97. metadata +119 -81
  98. metadata.gz.sig +5 -0
  99. data/.github/ISSUE_TEMPLATE.md +0 -2
  100. data/.travis.yml +0 -17
  101. data/Rakefile +0 -7
  102. data/lib/karafka/base_controller.rb +0 -117
  103. data/lib/karafka/connection/messages_consumer.rb +0 -106
  104. data/lib/karafka/connection/messages_processor.rb +0 -61
  105. data/lib/karafka/controllers/includer.rb +0 -51
  106. data/lib/karafka/controllers/responders.rb +0 -19
  107. data/lib/karafka/loader.rb +0 -29
  108. data/lib/karafka/logger.rb +0 -53
  109. data/lib/karafka/monitor.rb +0 -98
  110. data/lib/karafka/parsers/json.rb +0 -38
  111. data/lib/karafka/patches/dry_configurable.rb +0 -33
  112. data/lib/karafka/persistence/controller.rb +0 -23
  113. data/lib/karafka/schemas/config.rb +0 -31
  114. data/lib/karafka/schemas/consumer_group.rb +0 -64
  115. data/lib/karafka/schemas/consumer_group_topic.rb +0 -18
  116. data/lib/karafka/schemas/responder_usage.rb +0 -38
  117. data/lib/karafka/schemas/server_cli_options.rb +0 -43
  118. data/lib/karafka/setup/configurators/base.rb +0 -35
  119. data/lib/karafka/setup/configurators/celluloid.rb +0 -19
  120. data/lib/karafka/templates/karafka.rb.example +0 -41
  121. /data/lib/karafka/templates/{application_responder.rb.example → application_responder.rb.erb} +0 -0
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Application controller from which all Karafka controllers should inherit
3
+ # Application consumer from which all Karafka consumers should inherit
4
4
  # You can rename it if it would conflict with your current code base (in case you're integrating
5
5
  # Karafka with other frameworks)
6
- class ApplicationController < Karafka::BaseController
6
+ class ApplicationConsumer < Karafka::BaseConsumer
7
7
  end
@@ -0,0 +1,92 @@
1
+ # frozen_string_literal: true
2
+
3
+ <% if rails? -%>
4
+ ENV['RAILS_ENV'] ||= 'development'
5
+ ENV['KARAFKA_ENV'] = ENV['RAILS_ENV']
6
+ require ::File.expand_path('../config/environment', __FILE__)
7
+ Rails.application.eager_load!
8
+
9
+ # This lines will make Karafka print to stdout like puma or unicorn
10
+ if Rails.env.development?
11
+ Rails.logger.extend(
12
+ ActiveSupport::Logger.broadcast(
13
+ ActiveSupport::Logger.new($stdout)
14
+ )
15
+ )
16
+ end
17
+ <% else -%>
18
+ # This file is auto-generated during the install process.
19
+ # If by any chance you've wanted a setup for Rails app, either run the `karafka:install`
20
+ # command again or refer to the install templates available in the source codes
21
+
22
+ ENV['RACK_ENV'] ||= 'development'
23
+ ENV['KARAFKA_ENV'] ||= ENV['RACK_ENV']
24
+ Bundler.require(:default, ENV['KARAFKA_ENV'])
25
+
26
+ # Zeitwerk custom loader for loading the app components before the whole
27
+ # Karafka framework configuration
28
+ APP_LOADER = Zeitwerk::Loader.new
29
+ APP_LOADER.enable_reloading
30
+
31
+ %w[
32
+ lib
33
+ app/consumers
34
+ app/responders
35
+ app/workers
36
+ ].each(&APP_LOADER.method(:push_dir))
37
+
38
+ APP_LOADER.setup
39
+ APP_LOADER.eager_load
40
+ <% end -%>
41
+
42
+ class KarafkaApp < Karafka::App
43
+ setup do |config|
44
+ config.kafka.seed_brokers = %w[kafka://127.0.0.1:9092]
45
+ config.client_id = 'example_app'
46
+ <% if rails? -%>
47
+ config.logger = Rails.logger
48
+ <% end -%>
49
+ end
50
+
51
+ # Comment out this part if you are not using instrumentation and/or you are not
52
+ # interested in logging events for certain environments. Since instrumentation
53
+ # notifications add extra boilerplate, if you want to achieve max performance,
54
+ # listen to only what you really need for given environment.
55
+ Karafka.monitor.subscribe(WaterDrop::Instrumentation::StdoutListener.new)
56
+ Karafka.monitor.subscribe(Karafka::Instrumentation::StdoutListener.new)
57
+ # Karafka.monitor.subscribe(Karafka::Instrumentation::ProctitleListener.new)
58
+
59
+ # Uncomment that in order to achieve code reload in development mode
60
+ # Be aware, that this might have some side-effects. Please refer to the wiki
61
+ # for more details on benefits and downsides of the code reload in the
62
+ # development mode
63
+ #
64
+ # Karafka.monitor.subscribe(
65
+ # Karafka::CodeReloader.new(
66
+ # <%= rails? ? '*Rails.application.reloaders' : 'APP_LOADER' %>
67
+ # )
68
+ # )
69
+
70
+ consumer_groups.draw do
71
+ # topic :example do
72
+ # consumer ExampleConsumer
73
+ # end
74
+
75
+ # consumer_group :bigger_group do
76
+ # topic :test do
77
+ # consumer TestConsumer
78
+ # end
79
+ #
80
+ # topic :test2 do
81
+ # consumer Test2Consumer
82
+ # end
83
+ # end
84
+ end
85
+ end
86
+
87
+ Karafka.monitor.subscribe('app.initialized') do
88
+ # Put here all the things you want to do after the Karafka framework
89
+ # initialization
90
+ end
91
+
92
+ KarafkaApp.boot!
@@ -3,5 +3,5 @@
3
3
  # Main module namespace
4
4
  module Karafka
5
5
  # Current Karafka version
6
- VERSION = '1.0.1'
6
+ VERSION = '1.4.14'
7
7
  end
data/lib/karafka.rb CHANGED
@@ -1,24 +1,23 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  %w[
4
+ delegate
4
5
  English
5
- bundler
6
- celluloid/current
7
6
  waterdrop
8
7
  kafka
9
8
  envlogic
9
+ json
10
10
  thor
11
+ forwardable
11
12
  fileutils
12
- multi_json
13
- require_all
13
+ concurrent
14
14
  dry-configurable
15
15
  dry-validation
16
- active_support/callbacks
17
- active_support/core_ext/class/subclasses
18
- active_support/core_ext/hash/indifferent_access
19
- active_support/descendants_tracker
20
- active_support/inflector
21
- karafka/loader
16
+ dry/events/publisher
17
+ dry/inflector
18
+ dry/monitor/notifications
19
+ dry/core/constants
20
+ zeitwerk
22
21
  ].each(&method(:require))
23
22
 
24
23
  # Karafka library
@@ -31,14 +30,14 @@ module Karafka
31
30
  @logger ||= App.config.logger
32
31
  end
33
32
 
34
- # @return [::Karafka::Monitor] monitor that we want to use. Will use dummy monitor by default
33
+ # @return [::Karafka::Monitor] monitor that we want to use
35
34
  def monitor
36
35
  @monitor ||= App.config.monitor
37
36
  end
38
37
 
39
38
  # @return [String] root path of this gem
40
39
  def gem_root
41
- Pathname.new(File.expand_path('../..', __FILE__))
40
+ Pathname.new(File.expand_path('..', __dir__))
42
41
  end
43
42
 
44
43
  # @return [String] Karafka app root path (user application path)
@@ -48,13 +47,13 @@ module Karafka
48
47
 
49
48
  # @return [String] path to Karafka gem root core
50
49
  def core_root
51
- Pathname.new(File.expand_path('../karafka', __FILE__))
50
+ Pathname.new(File.expand_path('karafka', __dir__))
52
51
  end
53
52
 
54
53
  # @return [String] path to a default file that contains booting procedure etc
55
54
  # @note By default it is a file called 'karafka.rb' but it can be specified as you wish if you
56
55
  # have Karafka that is merged into a Sinatra/Rails app and karafka.rb is taken.
57
- # It will be used for console/controllers/etc
56
+ # It will be used for console/consumers/etc
58
57
  # @example Standard only-Karafka case
59
58
  # Karafka.boot_file #=> '/home/app_path/karafka.rb'
60
59
  # @example Non standard case
@@ -66,4 +65,9 @@ module Karafka
66
65
  end
67
66
  end
68
67
 
69
- Karafka::Loader.load!(Karafka.core_root)
68
+ Zeitwerk::Loader
69
+ .for_gem
70
+ .tap(&:setup)
71
+ .tap(&:eager_load)
72
+
73
+ Kafka::Consumer.prepend(Karafka::Patches::RubyKafka)
data.tar.gz.sig ADDED
Binary file
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: 1.0.1
4
+ version: 1.4.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maciej Mensfeld
@@ -9,25 +9,38 @@ authors:
9
9
  - Adam Gwozdowski
10
10
  autorequire:
11
11
  bindir: bin
12
- cert_chain: []
13
- date: 2017-10-27 00:00:00.000000000 Z
12
+ cert_chain:
13
+ - |
14
+ -----BEGIN CERTIFICATE-----
15
+ MIIEcDCCAtigAwIBAgIBATANBgkqhkiG9w0BAQsFADA/MRAwDgYDVQQDDAdjb250
16
+ YWN0MRcwFQYKCZImiZPyLGQBGRYHa2FyYWZrYTESMBAGCgmSJomT8ixkARkWAmlv
17
+ MB4XDTIyMDgxOTE3MjEzN1oXDTIzMDgxOTE3MjEzN1owPzEQMA4GA1UEAwwHY29u
18
+ dGFjdDEXMBUGCgmSJomT8ixkARkWB2thcmFma2ExEjAQBgoJkiaJk/IsZAEZFgJp
19
+ bzCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAODzeO3L6lxdATzMHKNW
20
+ jFA/GGunoPuylO/BMzy8RiQHh7VIvysAKs0tHhTx3g2D0STDpF+hcQcPELFikiT2
21
+ F+1wOHj/SsrK7VKqfA8+gq04hKc5sQoX2Egf9k3V0YJ3eZ6R/koHkQ8A0TVt0w6F
22
+ ZQckoV4MqnEAx0g/FZN3mnHTlJ3VFLSBqJEIe+S6FZMl92mSv+hTrlUG8VaYxSfN
23
+ lTCvnKk284F6QZq5XIENLRmcDd/3aPBLnLwNnyMyhB+6gK8cUO+CFlDO5tjo/aBA
24
+ rUnl++wGG0JooF1ed0v+evOn9KoMBG6rHewcf79qJbVOscbD8qSAmo+sCXtcFryr
25
+ KRMTB8gNbowJkFRJDEe8tfRy11u1fYzFg/qNO82FJd62rKAw2wN0C29yCeQOPRb1
26
+ Cw9Y4ZwK9VFNEcV9L+3pHTHn2XfuZHtDaG198VweiF6raFO4yiEYccodH/USP0L5
27
+ cbcCFtmu/4HDSxL1ByQXO84A0ybJuk3/+aPUSXe9C9U8fwIDAQABo3cwdTAJBgNV
28
+ HRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUSlcEakb7gfn/5E2WY6z73BF/
29
+ iZkwHQYDVR0RBBYwFIESY29udGFjdEBrYXJhZmthLmlvMB0GA1UdEgQWMBSBEmNv
30
+ bnRhY3RAa2FyYWZrYS5pbzANBgkqhkiG9w0BAQsFAAOCAYEA1aS+E7RXJ1w9g9mJ
31
+ G0NzFxe64OEuENosNlvYQCbRKGCXAU1qqelYkBQHseRgRKxLICrnypRo9IEobyHa
32
+ vDnJ4r7Tsb34dleqQW2zY/obG+cia3Ym2JsegXWF7dDOzCXJ4FN8MFoT2jHlqLLw
33
+ yrap0YO5zx0GSQ0Dwy8h2n2v2vanMEeCx7iNm3ERgR5WuN5sjzWoz2A/JLEEcK0C
34
+ EnAGKCWAd1fuG8IemDjT1edsd5FyYR4bIX0m+99oDuFZyPiiIbalmyYiSBBp59Yb
35
+ Q0P8zeBi4OfwCZNcxqz0KONmw9JLNv6DgyEAH5xe/4JzhMEgvIRiPj0pHfA7oqQF
36
+ KUNqvD1KlxbEC+bZfE5IZhnqYLdld/Ksqd22FI1RBhiS1Ejfsj99LVIm9cBuZEY2
37
+ Qf04B9ceLUaC4fPVEz10FyobjaFoY4i32xRto3XnrzeAgfEe4swLq8bQsR3w/EF3
38
+ MGU0FeSV2Yj7Xc2x/7BzLK8xQn5l7Yy75iPF+KP3vVmDHnNl
39
+ -----END CERTIFICATE-----
40
+ date: 2022-10-14 00:00:00.000000000 Z
14
41
  dependencies:
15
42
  - !ruby/object:Gem::Dependency
16
- name: activesupport
17
- requirement: !ruby/object:Gem::Requirement
18
- requirements:
19
- - - ">="
20
- - !ruby/object:Gem::Version
21
- version: '5.0'
22
- type: :runtime
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- version: '5.0'
29
- - !ruby/object:Gem::Dependency
30
- name: celluloid
43
+ name: concurrent-ruby
31
44
  requirement: !ruby/object:Gem::Requirement
32
45
  requirements:
33
46
  - - ">="
@@ -46,129 +59,129 @@ dependencies:
46
59
  requirements:
47
60
  - - "~>"
48
61
  - !ruby/object:Gem::Version
49
- version: '0.7'
62
+ version: '0.16'
50
63
  type: :runtime
51
64
  prerelease: false
52
65
  version_requirements: !ruby/object:Gem::Requirement
53
66
  requirements:
54
67
  - - "~>"
55
68
  - !ruby/object:Gem::Version
56
- version: '0.7'
69
+ version: '0.16'
57
70
  - !ruby/object:Gem::Dependency
58
- name: dry-validation
71
+ name: dry-inflector
59
72
  requirement: !ruby/object:Gem::Requirement
60
73
  requirements:
61
74
  - - "~>"
62
75
  - !ruby/object:Gem::Version
63
- version: '0.11'
76
+ version: '0.2'
64
77
  type: :runtime
65
78
  prerelease: false
66
79
  version_requirements: !ruby/object:Gem::Requirement
67
80
  requirements:
68
81
  - - "~>"
69
82
  - !ruby/object:Gem::Version
70
- version: '0.11'
83
+ version: '0.2'
71
84
  - !ruby/object:Gem::Dependency
72
- name: envlogic
85
+ name: dry-monitor
73
86
  requirement: !ruby/object:Gem::Requirement
74
87
  requirements:
75
88
  - - "~>"
76
89
  - !ruby/object:Gem::Version
77
- version: '1.0'
90
+ version: '0.5'
78
91
  type: :runtime
79
92
  prerelease: false
80
93
  version_requirements: !ruby/object:Gem::Requirement
81
94
  requirements:
82
95
  - - "~>"
83
96
  - !ruby/object:Gem::Version
84
- version: '1.0'
97
+ version: '0.5'
85
98
  - !ruby/object:Gem::Dependency
86
- name: multi_json
99
+ name: dry-validation
87
100
  requirement: !ruby/object:Gem::Requirement
88
101
  requirements:
89
- - - ">="
102
+ - - "~>"
90
103
  - !ruby/object:Gem::Version
91
- version: '1.12'
104
+ version: '1.7'
92
105
  type: :runtime
93
106
  prerelease: false
94
107
  version_requirements: !ruby/object:Gem::Requirement
95
108
  requirements:
96
- - - ">="
109
+ - - "~>"
97
110
  - !ruby/object:Gem::Version
98
- version: '1.12'
111
+ version: '1.7'
99
112
  - !ruby/object:Gem::Dependency
100
- name: rake
113
+ name: envlogic
101
114
  requirement: !ruby/object:Gem::Requirement
102
115
  requirements:
103
- - - ">="
116
+ - - "~>"
104
117
  - !ruby/object:Gem::Version
105
- version: '11.3'
118
+ version: '1.1'
106
119
  type: :runtime
107
120
  prerelease: false
108
121
  version_requirements: !ruby/object:Gem::Requirement
109
122
  requirements:
110
- - - ">="
123
+ - - "~>"
111
124
  - !ruby/object:Gem::Version
112
- version: '11.3'
125
+ version: '1.1'
113
126
  - !ruby/object:Gem::Dependency
114
- name: require_all
127
+ name: ruby-kafka
115
128
  requirement: !ruby/object:Gem::Requirement
116
129
  requirements:
117
130
  - - ">="
118
131
  - !ruby/object:Gem::Version
119
- version: '1.4'
132
+ version: 1.3.0
120
133
  type: :runtime
121
134
  prerelease: false
122
135
  version_requirements: !ruby/object:Gem::Requirement
123
136
  requirements:
124
137
  - - ">="
125
138
  - !ruby/object:Gem::Version
126
- version: '1.4'
139
+ version: 1.3.0
127
140
  - !ruby/object:Gem::Dependency
128
- name: ruby-kafka
141
+ name: thor
129
142
  requirement: !ruby/object:Gem::Requirement
130
143
  requirements:
131
144
  - - ">="
132
145
  - !ruby/object:Gem::Version
133
- version: '0.4'
146
+ version: '1.1'
134
147
  type: :runtime
135
148
  prerelease: false
136
149
  version_requirements: !ruby/object:Gem::Requirement
137
150
  requirements:
138
151
  - - ">="
139
152
  - !ruby/object:Gem::Version
140
- version: '0.4'
153
+ version: '1.1'
141
154
  - !ruby/object:Gem::Dependency
142
- name: thor
155
+ name: waterdrop
143
156
  requirement: !ruby/object:Gem::Requirement
144
157
  requirements:
145
158
  - - "~>"
146
159
  - !ruby/object:Gem::Version
147
- version: '0.19'
160
+ version: '1.4'
148
161
  type: :runtime
149
162
  prerelease: false
150
163
  version_requirements: !ruby/object:Gem::Requirement
151
164
  requirements:
152
165
  - - "~>"
153
166
  - !ruby/object:Gem::Version
154
- version: '0.19'
167
+ version: '1.4'
155
168
  - !ruby/object:Gem::Dependency
156
- name: waterdrop
169
+ name: zeitwerk
157
170
  requirement: !ruby/object:Gem::Requirement
158
171
  requirements:
159
172
  - - "~>"
160
173
  - !ruby/object:Gem::Version
161
- version: '0.4'
174
+ version: '2.6'
162
175
  type: :runtime
163
176
  prerelease: false
164
177
  version_requirements: !ruby/object:Gem::Requirement
165
178
  requirements:
166
179
  - - "~>"
167
180
  - !ruby/object:Gem::Version
168
- version: '0.4'
181
+ version: '2.6'
169
182
  description: Framework used to simplify Apache Kafka based Ruby applications development
170
183
  email:
171
- - maciej@coditsu.io
184
+ - maciej@mensfeld.pl
172
185
  - pavlo.vavruk@gmail.com
173
186
  - adam99g@gmail.com
174
187
  executables:
@@ -176,13 +189,16 @@ executables:
176
189
  extensions: []
177
190
  extra_rdoc_files: []
178
191
  files:
192
+ - ".coditsu/ci.yml"
179
193
  - ".console_irbrc"
180
- - ".github/ISSUE_TEMPLATE.md"
194
+ - ".diffend.yml"
195
+ - ".github/ISSUE_TEMPLATE/bug_report.md"
196
+ - ".github/ISSUE_TEMPLATE/feature_request.md"
197
+ - ".github/workflows/ci.yml"
181
198
  - ".gitignore"
182
199
  - ".rspec"
183
200
  - ".ruby-gemset"
184
201
  - ".ruby-version"
185
- - ".travis.yml"
186
202
  - CHANGELOG.md
187
203
  - CODE_OF_CONDUCT.md
188
204
  - CONTRIBUTING.md
@@ -190,15 +206,17 @@ files:
190
206
  - Gemfile.lock
191
207
  - MIT-LICENCE
192
208
  - README.md
193
- - Rakefile
194
209
  - bin/karafka
210
+ - certs/mensfeld.pem
195
211
  - config/errors.yml
212
+ - docker-compose.yml
196
213
  - karafka.gemspec
197
214
  - lib/karafka.rb
198
215
  - lib/karafka/app.rb
216
+ - lib/karafka/assignment_strategies/round_robin.rb
199
217
  - lib/karafka/attributes_map.rb
200
218
  - lib/karafka/backends/inline.rb
201
- - lib/karafka/base_controller.rb
219
+ - lib/karafka/base_consumer.rb
202
220
  - lib/karafka/base_responder.rb
203
221
  - lib/karafka/cli.rb
204
222
  - lib/karafka/cli/base.rb
@@ -206,27 +224,47 @@ files:
206
224
  - lib/karafka/cli/flow.rb
207
225
  - lib/karafka/cli/info.rb
208
226
  - lib/karafka/cli/install.rb
227
+ - lib/karafka/cli/missingno.rb
209
228
  - lib/karafka/cli/server.rb
210
- - lib/karafka/connection/config_adapter.rb
229
+ - lib/karafka/code_reloader.rb
230
+ - lib/karafka/connection/api_adapter.rb
231
+ - lib/karafka/connection/batch_delegator.rb
232
+ - lib/karafka/connection/builder.rb
233
+ - lib/karafka/connection/client.rb
211
234
  - lib/karafka/connection/listener.rb
212
- - lib/karafka/connection/messages_consumer.rb
213
- - lib/karafka/connection/messages_processor.rb
214
- - lib/karafka/controllers/includer.rb
215
- - lib/karafka/controllers/responders.rb
216
- - lib/karafka/controllers/single_params.rb
235
+ - lib/karafka/connection/message_delegator.rb
236
+ - lib/karafka/consumers/batch_metadata.rb
237
+ - lib/karafka/consumers/callbacks.rb
238
+ - lib/karafka/consumers/includer.rb
239
+ - lib/karafka/consumers/responders.rb
240
+ - lib/karafka/consumers/single_params.rb
241
+ - lib/karafka/contracts.rb
242
+ - lib/karafka/contracts/config.rb
243
+ - lib/karafka/contracts/consumer_group.rb
244
+ - lib/karafka/contracts/consumer_group_topic.rb
245
+ - lib/karafka/contracts/responder_usage.rb
246
+ - lib/karafka/contracts/server_cli_options.rb
217
247
  - lib/karafka/errors.rb
218
248
  - lib/karafka/fetcher.rb
219
249
  - lib/karafka/helpers/class_matcher.rb
220
250
  - lib/karafka/helpers/config_retriever.rb
251
+ - lib/karafka/helpers/inflector.rb
221
252
  - lib/karafka/helpers/multi_delegator.rb
222
- - lib/karafka/loader.rb
223
- - lib/karafka/logger.rb
224
- - lib/karafka/monitor.rb
253
+ - lib/karafka/instrumentation/logger.rb
254
+ - lib/karafka/instrumentation/monitor.rb
255
+ - lib/karafka/instrumentation/proctitle_listener.rb
256
+ - lib/karafka/instrumentation/stdout_listener.rb
257
+ - lib/karafka/params/batch_metadata.rb
258
+ - lib/karafka/params/builders/batch_metadata.rb
259
+ - lib/karafka/params/builders/params.rb
260
+ - lib/karafka/params/builders/params_batch.rb
261
+ - lib/karafka/params/metadata.rb
225
262
  - lib/karafka/params/params.rb
226
263
  - lib/karafka/params/params_batch.rb
227
- - lib/karafka/parsers/json.rb
228
- - lib/karafka/patches/dry_configurable.rb
229
- - lib/karafka/persistence/controller.rb
264
+ - lib/karafka/patches/ruby_kafka.rb
265
+ - lib/karafka/persistence/client.rb
266
+ - lib/karafka/persistence/consumers.rb
267
+ - lib/karafka/persistence/topics.rb
230
268
  - lib/karafka/process.rb
231
269
  - lib/karafka/responders/builder.rb
232
270
  - lib/karafka/responders/topic.rb
@@ -237,27 +275,28 @@ files:
237
275
  - lib/karafka/routing/router.rb
238
276
  - lib/karafka/routing/topic.rb
239
277
  - lib/karafka/routing/topic_mapper.rb
240
- - lib/karafka/schemas/config.rb
241
- - lib/karafka/schemas/consumer_group.rb
242
- - lib/karafka/schemas/consumer_group_topic.rb
243
- - lib/karafka/schemas/responder_usage.rb
244
- - lib/karafka/schemas/server_cli_options.rb
278
+ - lib/karafka/serialization/json/deserializer.rb
279
+ - lib/karafka/serialization/json/serializer.rb
245
280
  - lib/karafka/server.rb
246
281
  - lib/karafka/setup/config.rb
247
- - lib/karafka/setup/configurators/base.rb
248
- - lib/karafka/setup/configurators/celluloid.rb
249
282
  - lib/karafka/setup/configurators/water_drop.rb
283
+ - lib/karafka/setup/dsl.rb
250
284
  - lib/karafka/status.rb
251
- - lib/karafka/templates/application_controller.rb.example
252
- - lib/karafka/templates/application_responder.rb.example
253
- - lib/karafka/templates/karafka.rb.example
285
+ - lib/karafka/templates/application_consumer.rb.erb
286
+ - lib/karafka/templates/application_responder.rb.erb
287
+ - lib/karafka/templates/karafka.rb.erb
254
288
  - lib/karafka/version.rb
255
289
  - log/.gitkeep
256
- homepage: https://github.com/karafka/karafka
290
+ homepage: https://karafka.io
257
291
  licenses:
258
292
  - MIT
259
- metadata: {}
260
- post_install_message:
293
+ metadata:
294
+ source_code_uri: https://github.com/karafka/karafka
295
+ rubygems_mfa_required: 'true'
296
+ post_install_message: |
297
+ WARN: Karafka 1.4 will reach the end of life soon.
298
+ We highly recommend updating to Karafka 2.0.
299
+ Visit this page for more details: https://karafka.io/docs/Versions-Lifecycle-and-EOL
261
300
  rdoc_options: []
262
301
  require_paths:
263
302
  - lib
@@ -265,15 +304,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
265
304
  requirements:
266
305
  - - ">="
267
306
  - !ruby/object:Gem::Version
268
- version: 2.3.0
307
+ version: '2.7'
269
308
  required_rubygems_version: !ruby/object:Gem::Requirement
270
309
  requirements:
271
310
  - - ">="
272
311
  - !ruby/object:Gem::Version
273
312
  version: '0'
274
313
  requirements: []
275
- rubyforge_project:
276
- rubygems_version: 2.6.13
314
+ rubygems_version: 3.3.7
277
315
  signing_key:
278
316
  specification_version: 4
279
317
  summary: Ruby based framework for working with Apache Kafka
metadata.gz.sig ADDED
@@ -0,0 +1,5 @@
1
+ 
2
+ �N�r3�%�|�#��嗸�PF���<�a��z����{�)7���٩I��F��b3��Ռ�^`���f��A��.{�Z�X 3
3
+ F:|����YǐQ9�[j�4�+��*�Ng�4V�$�pb���ۗ�\{r�Ⱦ"ܡ���s٨�� �T�2�m��m6ۯ�v>Ɂ�����<K����e�]�SM��F��n��V&� ���=8�#⦣�|.�J�ȹI��vMM%jR�u��ȟ�z!��C���u�k��TV��.��pU�_�M��'z�L��i���?*������
4
+ �Y�$/w�WҷE�r4+��`-S�C
5
+ [�6���_C*p{��V�5��l�z�\��iOj��<2�<7�@���0W������R|����+ch�{����
@@ -1,2 +0,0 @@
1
- <!-- Love karafka? Please consider supporting our collective:
2
- 👉 https://opencollective.com/karafka/donate -->
data/.travis.yml DELETED
@@ -1,17 +0,0 @@
1
- language: ruby
2
- sudo: false
3
- rvm:
4
- - 2.3.0
5
- - 2.3.1
6
- - 2.3.2
7
- - 2.3.3
8
- - 2.3.4
9
- - 2.4.0
10
- - 2.4.1
11
- - 2.4.2
12
- - jruby-head
13
- script: bundle exec rspec spec/
14
- env:
15
- global:
16
- - JRUBY_OPTS='--debug'
17
- install: bundle install --jobs=3 --retry=3
data/Rakefile DELETED
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rspec'
4
- require 'rspec/core/rake_task'
5
-
6
- RSpec::Core::RakeTask.new(:spec)
7
- task default: :spec