karafka 2.0.0.alpha1 → 2.0.0.alpha4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/.github/workflows/ci.yml +3 -1
  4. data/CHANGELOG.md +14 -1
  5. data/CONTRIBUTING.md +6 -6
  6. data/Gemfile.lock +24 -24
  7. data/LICENSE +3 -0
  8. data/bin/integrations +44 -8
  9. data/bin/karafka +4 -0
  10. data/bin/stress +1 -1
  11. data/config/errors.yml +1 -0
  12. data/docker-compose.yml +1 -0
  13. data/karafka.gemspec +1 -1
  14. data/lib/active_job/karafka.rb +16 -13
  15. data/lib/active_job/queue_adapters/karafka_adapter.rb +3 -6
  16. data/lib/karafka/active_job/consumer.rb +24 -0
  17. data/lib/karafka/active_job/dispatcher.rb +38 -0
  18. data/lib/karafka/active_job/job_extensions.rb +34 -0
  19. data/lib/karafka/active_job/job_options_contract.rb +15 -0
  20. data/lib/karafka/active_job/routing_extensions.rb +18 -0
  21. data/lib/karafka/app.rb +1 -0
  22. data/lib/karafka/cli/info.rb +3 -3
  23. data/lib/karafka/cli/install.rb +1 -0
  24. data/lib/karafka/cli/server.rb +2 -16
  25. data/lib/karafka/contracts/base.rb +23 -0
  26. data/lib/karafka/contracts/config.rb +21 -3
  27. data/lib/karafka/contracts/consumer_group.rb +1 -3
  28. data/lib/karafka/contracts/consumer_group_topic.rb +2 -3
  29. data/lib/karafka/contracts/server_cli_options.rb +1 -3
  30. data/lib/karafka/errors.rb +4 -0
  31. data/lib/karafka/instrumentation/monitor.rb +1 -0
  32. data/lib/karafka/instrumentation/stdout_listener.rb +3 -0
  33. data/lib/karafka/licenser.rb +20 -9
  34. data/lib/karafka/messages/batch_metadata.rb +2 -0
  35. data/lib/karafka/messages/builders/batch_metadata.rb +23 -1
  36. data/lib/karafka/pro/active_job/dispatcher.rb +58 -0
  37. data/lib/karafka/pro/active_job/job_options_contract.rb +27 -0
  38. data/lib/karafka/pro/loader.rb +29 -0
  39. data/lib/karafka/pro.rb +13 -0
  40. data/lib/karafka/processing/worker.rb +1 -1
  41. data/lib/karafka/railtie.rb +55 -19
  42. data/lib/karafka/routing/builder.rb +1 -11
  43. data/lib/karafka/routing/subscription_group.rb +5 -5
  44. data/lib/karafka/routing/subscription_groups_builder.rb +1 -0
  45. data/lib/karafka/routing/topic.rb +1 -0
  46. data/lib/karafka/setup/config.rb +25 -20
  47. data/lib/karafka/status.rb +1 -0
  48. data/lib/karafka/templates/karafka.rb.erb +1 -1
  49. data/lib/karafka/version.rb +1 -1
  50. data/lib/karafka.rb +7 -2
  51. data.tar.gz.sig +0 -0
  52. metadata +14 -7
  53. metadata.gz.sig +0 -0
  54. data/.github/FUNDING.yml +0 -3
  55. data/lib/active_job/consumer.rb +0 -22
  56. data/lib/active_job/routing_extensions.rb +0 -15
data/lib/karafka.rb CHANGED
@@ -65,6 +65,11 @@ module Karafka
65
65
  Pathname.new(File.expand_path('karafka', __dir__))
66
66
  end
67
67
 
68
+ # @return [Boolean] true if there is a valid pro token present
69
+ def pro?
70
+ App.config.license.token != false
71
+ end
72
+
68
73
  # @return [String] path to a default file that contains booting procedure etc
69
74
  # @note By default it is a file called 'karafka.rb' but it can be specified as you wish if you
70
75
  # have Karafka that is merged into a Sinatra/Rails app and karafka.rb is taken.
@@ -82,8 +87,8 @@ end
82
87
 
83
88
  loader = Zeitwerk::Loader.for_gem
84
89
  # Do not load Rails extensions by default, this will be handled by Railtie if they are needed
85
- loader.do_not_eager_load(Karafka.gem_root.join('lib/active_job'))
90
+ loader.ignore(Karafka.gem_root.join('lib/active_job'))
86
91
  # Do not load pro components, this will be handled by license manager
87
- loader.do_not_eager_load(Karafka.gem_root.join('lib/karafka/pro'))
92
+ loader.ignore(Karafka.gem_root.join('lib/karafka/pro'))
88
93
  loader.setup
89
94
  loader.eager_load
data.tar.gz.sig CHANGED
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: 2.0.0.alpha1
4
+ version: 2.0.0.alpha4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maciej Mensfeld
@@ -34,7 +34,7 @@ cert_chain:
34
34
  R2P11bWoCtr70BsccVrN8jEhzwXngMyI2gVt750Y+dbTu1KgRqZKp/ECe7ZzPzXj
35
35
  pIy9vHxTANKYVyI4qj8OrFdEM5BQNu8oQpL0iQ==
36
36
  -----END CERTIFICATE-----
37
- date: 2022-01-30 00:00:00.000000000 Z
37
+ date: 2022-03-20 00:00:00.000000000 Z
38
38
  dependencies:
39
39
  - !ruby/object:Gem::Dependency
40
40
  name: dry-configurable
@@ -112,7 +112,7 @@ dependencies:
112
112
  requirements:
113
113
  - - ">="
114
114
  - !ruby/object:Gem::Version
115
- version: 2.1.0
115
+ version: 2.2.0
116
116
  - - "<"
117
117
  - !ruby/object:Gem::Version
118
118
  version: 3.0.0
@@ -122,7 +122,7 @@ dependencies:
122
122
  requirements:
123
123
  - - ">="
124
124
  - !ruby/object:Gem::Version
125
- version: 2.1.0
125
+ version: 2.2.0
126
126
  - - "<"
127
127
  - !ruby/object:Gem::Version
128
128
  version: 3.0.0
@@ -151,7 +151,6 @@ files:
151
151
  - ".coditsu/ci.yml"
152
152
  - ".console_irbrc"
153
153
  - ".diffend.yml"
154
- - ".github/FUNDING.yml"
155
154
  - ".github/ISSUE_TEMPLATE/bug_report.md"
156
155
  - ".github/ISSUE_TEMPLATE/feature_request.md"
157
156
  - ".github/workflows/ci.yml"
@@ -178,11 +177,14 @@ files:
178
177
  - config/errors.yml
179
178
  - docker-compose.yml
180
179
  - karafka.gemspec
181
- - lib/active_job/consumer.rb
182
180
  - lib/active_job/karafka.rb
183
181
  - lib/active_job/queue_adapters/karafka_adapter.rb
184
- - lib/active_job/routing_extensions.rb
185
182
  - lib/karafka.rb
183
+ - lib/karafka/active_job/consumer.rb
184
+ - lib/karafka/active_job/dispatcher.rb
185
+ - lib/karafka/active_job/job_extensions.rb
186
+ - lib/karafka/active_job/job_options_contract.rb
187
+ - lib/karafka/active_job/routing_extensions.rb
186
188
  - lib/karafka/app.rb
187
189
  - lib/karafka/base_consumer.rb
188
190
  - lib/karafka/cli.rb
@@ -197,6 +199,7 @@ files:
197
199
  - lib/karafka/connection/pauses_manager.rb
198
200
  - lib/karafka/connection/rebalance_manager.rb
199
201
  - lib/karafka/contracts.rb
202
+ - lib/karafka/contracts/base.rb
200
203
  - lib/karafka/contracts/config.rb
201
204
  - lib/karafka/contracts/consumer_group.rb
202
205
  - lib/karafka/contracts/consumer_group_topic.rb
@@ -221,6 +224,10 @@ files:
221
224
  - lib/karafka/messages/metadata.rb
222
225
  - lib/karafka/messages/seek.rb
223
226
  - lib/karafka/patches/rdkafka/consumer.rb
227
+ - lib/karafka/pro.rb
228
+ - lib/karafka/pro/active_job/dispatcher.rb
229
+ - lib/karafka/pro/active_job/job_options_contract.rb
230
+ - lib/karafka/pro/loader.rb
224
231
  - lib/karafka/process.rb
225
232
  - lib/karafka/processing/executor.rb
226
233
  - lib/karafka/processing/executors_buffer.rb
metadata.gz.sig CHANGED
Binary file
data/.github/FUNDING.yml DELETED
@@ -1,3 +0,0 @@
1
- # These are supported funding model platforms
2
-
3
- open_collective: karafka
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ActiveJob
4
- # This is the consumer for ActiveJob that eats the messages enqueued with it one after another.
5
- # It marks the offset after each message, so we make sure, none of the jobs is executed twice
6
- class Consumer < Karafka::BaseConsumer
7
- # Executes the ActiveJob logic
8
- # @note ActiveJob does not support batches, so we just run one message after another
9
- def consume
10
- messages.each do |message|
11
- ActiveJob::Base.execute(
12
- # We technically speaking could set this as deserializer and reference it from the
13
- # message instead of using the `#raw_payload`. This is not done on purpose to simplify
14
- # the ActiveJob setup here
15
- ActiveSupport::JSON.decode(message.raw_payload)
16
- )
17
-
18
- mark_as_consumed(message)
19
- end
20
- end
21
- end
22
- end
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ActiveJob
4
- # Routing extensions for ActiveJob
5
- module RoutingExtensions
6
- # This method simplifies routes definition for ActiveJob topics / queues by auto-injecting the
7
- # consumer class
8
- # @param name [String, Symbol] name of the topic where ActiveJobs jobs should go
9
- def active_job_topic(name)
10
- topic(name) do
11
- consumer ActiveJob::Consumer
12
- end
13
- end
14
- end
15
- end