karafka 1.2.8 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (113) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/.coditsu/ci.yml +3 -0
  5. data/.console_irbrc +1 -3
  6. data/.diffend.yml +3 -0
  7. data/.github/FUNDING.yml +3 -0
  8. data/.github/ISSUE_TEMPLATE/bug_report.md +50 -0
  9. data/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  10. data/.github/workflows/ci.yml +52 -0
  11. data/.gitignore +1 -0
  12. data/.ruby-version +1 -1
  13. data/CHANGELOG.md +134 -14
  14. data/CODE_OF_CONDUCT.md +1 -1
  15. data/CONTRIBUTING.md +1 -1
  16. data/Gemfile +4 -5
  17. data/Gemfile.lock +92 -81
  18. data/README.md +9 -12
  19. data/bin/karafka +1 -1
  20. data/certs/mensfeld.pem +25 -0
  21. data/config/errors.yml +38 -5
  22. data/docker-compose.yml +17 -0
  23. data/karafka.gemspec +18 -17
  24. data/lib/karafka.rb +10 -16
  25. data/lib/karafka/app.rb +14 -6
  26. data/lib/karafka/attributes_map.rb +5 -10
  27. data/lib/karafka/base_consumer.rb +19 -30
  28. data/lib/karafka/base_responder.rb +45 -27
  29. data/lib/karafka/cli.rb +2 -2
  30. data/lib/karafka/cli/console.rb +11 -9
  31. data/lib/karafka/cli/flow.rb +9 -7
  32. data/lib/karafka/cli/info.rb +4 -2
  33. data/lib/karafka/cli/install.rb +30 -6
  34. data/lib/karafka/cli/server.rb +11 -6
  35. data/lib/karafka/code_reloader.rb +67 -0
  36. data/lib/karafka/connection/api_adapter.rb +22 -9
  37. data/lib/karafka/connection/batch_delegator.rb +55 -0
  38. data/lib/karafka/connection/builder.rb +5 -3
  39. data/lib/karafka/connection/client.rb +31 -31
  40. data/lib/karafka/connection/listener.rb +26 -15
  41. data/lib/karafka/connection/message_delegator.rb +36 -0
  42. data/lib/karafka/consumers/batch_metadata.rb +10 -0
  43. data/lib/karafka/consumers/callbacks.rb +32 -15
  44. data/lib/karafka/consumers/includer.rb +31 -18
  45. data/lib/karafka/consumers/responders.rb +2 -2
  46. data/lib/karafka/contracts.rb +10 -0
  47. data/lib/karafka/contracts/config.rb +21 -0
  48. data/lib/karafka/contracts/consumer_group.rb +206 -0
  49. data/lib/karafka/contracts/consumer_group_topic.rb +19 -0
  50. data/lib/karafka/contracts/responder_usage.rb +54 -0
  51. data/lib/karafka/contracts/server_cli_options.rb +31 -0
  52. data/lib/karafka/errors.rb +17 -16
  53. data/lib/karafka/fetcher.rb +28 -30
  54. data/lib/karafka/helpers/class_matcher.rb +12 -2
  55. data/lib/karafka/helpers/config_retriever.rb +1 -1
  56. data/lib/karafka/helpers/inflector.rb +26 -0
  57. data/lib/karafka/helpers/multi_delegator.rb +0 -1
  58. data/lib/karafka/instrumentation/logger.rb +9 -6
  59. data/lib/karafka/instrumentation/monitor.rb +15 -9
  60. data/lib/karafka/instrumentation/proctitle_listener.rb +36 -0
  61. data/lib/karafka/instrumentation/stdout_listener.rb +140 -0
  62. data/lib/karafka/params/batch_metadata.rb +26 -0
  63. data/lib/karafka/params/builders/batch_metadata.rb +30 -0
  64. data/lib/karafka/params/builders/params.rb +38 -0
  65. data/lib/karafka/params/builders/params_batch.rb +25 -0
  66. data/lib/karafka/params/metadata.rb +20 -0
  67. data/lib/karafka/params/params.rb +54 -0
  68. data/lib/karafka/params/params_batch.rb +35 -21
  69. data/lib/karafka/patches/ruby_kafka.rb +21 -8
  70. data/lib/karafka/persistence/client.rb +15 -11
  71. data/lib/karafka/persistence/{consumer.rb → consumers.rb} +20 -13
  72. data/lib/karafka/persistence/topics.rb +48 -0
  73. data/lib/karafka/process.rb +0 -2
  74. data/lib/karafka/responders/builder.rb +1 -1
  75. data/lib/karafka/responders/topic.rb +6 -8
  76. data/lib/karafka/routing/builder.rb +36 -8
  77. data/lib/karafka/routing/consumer_group.rb +1 -1
  78. data/lib/karafka/routing/consumer_mapper.rb +9 -9
  79. data/lib/karafka/routing/proxy.rb +10 -1
  80. data/lib/karafka/routing/topic.rb +5 -3
  81. data/lib/karafka/routing/topic_mapper.rb +16 -18
  82. data/lib/karafka/serialization/json/deserializer.rb +27 -0
  83. data/lib/karafka/serialization/json/serializer.rb +31 -0
  84. data/lib/karafka/server.rb +29 -28
  85. data/lib/karafka/setup/config.rb +67 -37
  86. data/lib/karafka/setup/configurators/water_drop.rb +7 -3
  87. data/lib/karafka/setup/dsl.rb +0 -1
  88. data/lib/karafka/status.rb +7 -3
  89. data/lib/karafka/templates/{application_consumer.rb.example → application_consumer.rb.erb} +2 -1
  90. data/lib/karafka/templates/{application_responder.rb.example → application_responder.rb.erb} +0 -0
  91. data/lib/karafka/templates/karafka.rb.erb +92 -0
  92. data/lib/karafka/version.rb +1 -1
  93. metadata +94 -72
  94. metadata.gz.sig +0 -0
  95. data/.travis.yml +0 -21
  96. data/lib/karafka/callbacks.rb +0 -30
  97. data/lib/karafka/callbacks/config.rb +0 -22
  98. data/lib/karafka/callbacks/dsl.rb +0 -16
  99. data/lib/karafka/connection/delegator.rb +0 -46
  100. data/lib/karafka/instrumentation/listener.rb +0 -112
  101. data/lib/karafka/loader.rb +0 -28
  102. data/lib/karafka/params/dsl.rb +0 -156
  103. data/lib/karafka/parsers/json.rb +0 -38
  104. data/lib/karafka/patches/dry_configurable.rb +0 -35
  105. data/lib/karafka/persistence/topic.rb +0 -29
  106. data/lib/karafka/schemas/config.rb +0 -24
  107. data/lib/karafka/schemas/consumer_group.rb +0 -78
  108. data/lib/karafka/schemas/consumer_group_topic.rb +0 -18
  109. data/lib/karafka/schemas/responder_usage.rb +0 -39
  110. data/lib/karafka/schemas/server_cli_options.rb +0 -43
  111. data/lib/karafka/setup/configurators/base.rb +0 -29
  112. data/lib/karafka/setup/configurators/params.rb +0 -25
  113. data/lib/karafka/templates/karafka.rb.example +0 -54
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7a4b14c619edcab5a576a211ec9e7a791ebca8e200ee82dccf21d41a9546dcc7
4
- data.tar.gz: 67916109c7f400f6be77eef19cbc7f059ed99c77d9e4e6554abe8925cba2b1e5
3
+ metadata.gz: 45788f5dd509d8a61a1480ff5c1b41f89b683d2100e0dcedaf6e35e6ce3af447
4
+ data.tar.gz: d5e5638fd2a83b91f78cf1f38d03bd2594fb562a0cc8ad6cf2e45f60e72cc692
5
5
  SHA512:
6
- metadata.gz: 46311d0b624a9c4b0859fd79fcbe05a3bef67aa33f1eed53ea9a70f114531775e176b5acce4aa2295960c2180e74060f4f77e2bd49f42e1474f00664996ab4fa
7
- data.tar.gz: 02f3933639045e38b88d23bf811cc7c5e870cc5e76e8e315cb5fa860833f4a2474c99919d74e073588dca957bc2e6f8832c35db9d580d0edb31df1417a7a3712
6
+ metadata.gz: 75b2863022df6dc78f23ca557450a9757e137d110f9a6c49a29f572cd701863143e638394c341e8f982bdce4255df923879c8410ce081503c43e3f9a0ce2e777
7
+ data.tar.gz: ec0eee525c34634d15b04c85a492e329d4749f179ff2c21d3ce2e50cccb4b6d061465c13df322a026b8924974f743277448464db818e13d73ef90f5ce930f796
Binary file
Binary file
@@ -0,0 +1,3 @@
1
+ repository_id: 'd4482d42-f6b5-44ba-a5e4-00989ac519ee'
2
+ api_key: <%= ENV['CODITSU_API_KEY'] %>
3
+ api_secret: <%= ENV['CODITSU_API_SECRET'] %>
@@ -1,11 +1,9 @@
1
1
  # irbrc for Karafka console
2
- require 'karafka'
3
- require Karafka.boot_file
4
2
 
5
3
  IRB.conf[:AUTO_INDENT] = true
6
4
  IRB.conf[:SAVE_HISTORY] = 1000
7
5
  IRB.conf[:USE_READLINE] = true
8
- IRB.conf[:HISTORY_FILE] = "#{Karafka::App.root}/.irb-history"
6
+ IRB.conf[:HISTORY_FILE] = ".irb-history"
9
7
  IRB.conf[:LOAD_MODULES] = [] unless IRB.conf.key?(:LOAD_MODULES)
10
8
 
11
9
  unless IRB.conf[:LOAD_MODULES].include?('irb/completion')
@@ -0,0 +1,3 @@
1
+ project_id: 'de9b9933-7610-4cc4-b69b-f7e3e3c5e797'
2
+ shareable_id: '68a8c626-b605-40ad-ac45-e3961ad7c57d'
3
+ shareable_key: 'a3ec2dac-fba2-4b6c-b181-49e927b15057'
@@ -0,0 +1,3 @@
1
+ # These are supported funding model platforms
2
+
3
+ open_collective: karafka
@@ -0,0 +1,50 @@
1
+ ---
2
+ name: Bug Report
3
+ about: Report an issue with Karafka you've discovered.
4
+ ---
5
+
6
+ *Be clear, concise and precise in your description of the problem.
7
+ Open an issue with a descriptive title and a summary in grammatically correct,
8
+ complete sentences.*
9
+
10
+ *Use the template below when reporting bugs. Please, make sure that
11
+ you're running the latest stable Karafka and that the problem you're reporting
12
+ hasn't been reported (and potentially fixed) already.*
13
+
14
+ *Before filing the ticket you should replace all text above the horizontal
15
+ rule with your own words.*
16
+
17
+ --------
18
+
19
+ ## Expected behavior
20
+
21
+ Describe here how you expected Karafka to behave in this particular situation.
22
+
23
+ ## Actual behavior
24
+
25
+ Describe here what actually happened.
26
+
27
+ ## Steps to reproduce the problem
28
+
29
+ This is extremely important! Providing us with a reliable way to reproduce
30
+ a problem will expedite its solution.
31
+
32
+ ## Your setup details
33
+
34
+ Please provide kafka version and the output of `karafka info` or `bundle exec karafka info` if using Bundler.
35
+
36
+ Here's an example:
37
+
38
+ ```
39
+ $ [bundle exec] karafka info
40
+ Karafka version: 1.3.0
41
+ Ruby version: 2.6.3
42
+ Ruby-kafka version: 0.7.9
43
+ Application client id: karafka-local
44
+ Backend: inline
45
+ Batch fetching: true
46
+ Batch consuming: true
47
+ Boot file: /app/karafka/karafka.rb
48
+ Environment: development
49
+ Kafka seed brokers: ["kafka://kafka:9092"]
50
+ ```
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: Feature Request
3
+ about: Suggest new Karafka features or improvements to existing features.
4
+ ---
5
+
6
+ ## Is your feature request related to a problem? Please describe.
7
+
8
+ A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
9
+
10
+ ## Describe the solution you'd like
11
+
12
+ A clear and concise description of what you want to happen.
13
+
14
+ ## Describe alternatives you've considered
15
+
16
+ A clear and concise description of any alternative solutions or features you've considered.
17
+
18
+ ## Additional context
19
+
20
+ Add any other context or screenshots about the feature request here.
@@ -0,0 +1,52 @@
1
+ name: ci
2
+
3
+ on:
4
+ push:
5
+ schedule:
6
+ - cron: '0 1 * * *'
7
+
8
+ jobs:
9
+ specs:
10
+ runs-on: ubuntu-latest
11
+ strategy:
12
+ fail-fast: false
13
+ matrix:
14
+ ruby:
15
+ - '2.7'
16
+ - '2.6'
17
+ - '2.5'
18
+ include:
19
+ - ruby: '2.7'
20
+ coverage: 'true'
21
+ steps:
22
+ - uses: actions/checkout@v2
23
+ - name: Install package dependencies
24
+ run: "[ -e $APT_DEPS ] || sudo apt-get install -y --no-install-recommends $APT_DEPS"
25
+ - name: Set up Ruby
26
+ uses: ruby/setup-ruby@v1
27
+ with:
28
+ ruby-version: ${{matrix.ruby}}
29
+ - name: Install latest bundler
30
+ run: |
31
+ gem install bundler --no-document
32
+ bundle config set without 'tools benchmarks docs'
33
+ - name: Bundle install
34
+ run: |
35
+ bundle config set without development
36
+ bundle install --jobs 4 --retry 3
37
+ - name: Run Kafka with docker-compose
38
+ run: docker-compose up -d
39
+ - name: Run all tests
40
+ env:
41
+ GITHUB_COVERAGE: ${{matrix.coverage}}
42
+ run: bundle exec rspec
43
+ coditsu:
44
+ runs-on: ubuntu-latest
45
+ strategy:
46
+ fail-fast: false
47
+ steps:
48
+ - uses: actions/checkout@v2
49
+ with:
50
+ fetch-depth: 0
51
+ - name: Run Coditsu
52
+ run: \curl -sSL https://api.coditsu.io/run/ci | bash
data/.gitignore CHANGED
@@ -6,6 +6,7 @@
6
6
  app.god
7
7
 
8
8
  # minimal Rails specific artifacts
9
+ /.coditsu/local.yml
9
10
  db/*.sqlite3
10
11
  /log/development.log
11
12
  /log/production.log
@@ -1 +1 @@
1
- 2.5.1
1
+ 2.7.1
@@ -1,5 +1,123 @@
1
1
  # Karafka framework changelog
2
2
 
3
+ ## 1.4.0 (2020-09-05)
4
+ - Rename `Karafka::Params::Metadata` to `Karafka::Params::BatchMetadata`
5
+ ` Rename consumer `#metadata` to `#batch_metadata`
6
+ - Separate metadata (including Karafka native metadata) from the root of params (backwards compatibility preserved thanks to rabotyaga)
7
+ - Remove metadata hash dependency
8
+ - Remove params dependency on a hash in favour of PORO
9
+ - Remove batch metadata dependency on a hash
10
+ - Remove MultiJson in favour of JSON in the default deserializer
11
+ - allow accessing all the metadata without accessing the payload
12
+ - freeze params and underlying elements except for the mutable payload
13
+ - provide access to raw payload after serialization
14
+ - fixes a bug where a non-deserializable (error) params would be marked as deserialized after first unsuccessful deserialization attempt
15
+ - fixes bug where karafka would mutate internal ruby-kafka state
16
+ - fixes bug where topic name in metadata would not be mapped using topic mappers
17
+ - simplifies the params and params batch API, before `#payload` usage, it won't be deserialized
18
+ - removes the `#[]` API from params to prevent from accessing raw data in a different way than #raw_payload
19
+ - makes the params batch operations consistent as params payload is deserialized only when accessed explicitly
20
+
21
+ ## 1.3.7 (2020-08-11)
22
+ - #599 - Allow metadata access without deserialization attempt (rabotyaga)
23
+ - Sync with ruby-kafka `1.2.0` api
24
+
25
+ ## 1.3.6 (2020-04-24)
26
+ - #583 - Use Karafka.logger for CLI messages (prikha)
27
+ - #582 - Cannot only define seed brokers in consumer groups
28
+
29
+ ## 1.3.5 (2020-04-02)
30
+ - #578 - ThreadError: can't be called from trap context patch
31
+
32
+ ## 1.3.4 (2020-02-17)
33
+ - `dry-configurable` upgrade (solnic)
34
+ - Remove temporary `thor` patches that are no longer needed
35
+
36
+ ## 1.3.3 (2019-12-23)
37
+ - Require `delegate` to fix missing dependency in `ruby-kafka`
38
+
39
+ ## 1.3.2 (2019-12-23)
40
+ - #561 - Allow `thor` 1.0.x usage in Karafka
41
+ - #567 - Ruby 2.7.0 support + unfreeze of a frozen string fix
42
+
43
+ ## 1.3.1 (2019-11-11)
44
+ - #545 - Makes sure the log directory exists when is possible (robertomiranda)
45
+ - Ruby 2.6.5 support
46
+ - #551 - add support for DSA keys
47
+ - #549 - Missing directories after `karafka install` (nijikon)
48
+
49
+ ## 1.3.0 (2019-09-09)
50
+ - Drop support for Ruby 2.4
51
+ - YARD docs tags cleanup
52
+
53
+ ## 1.3.0.rc1 (2019-07-31)
54
+ - Drop support for Kafka 0.10 in favor of native support for Kafka 0.11.
55
+ - Update ruby-kafka to the 0.7 version
56
+ - Support messages headers receiving
57
+ - Message bus unification
58
+ - Parser available in metadata
59
+ - Cleanup towards moving to a non-global state app management
60
+ - Drop Ruby 2.3 support
61
+ - Support for Ruby 2.6.3
62
+ - `Karafka::Loader` has been removed in favor of Zeitwerk
63
+ - Schemas are now contracts
64
+ - #393 - Reorganize responders - removed `multiple_usage` constrain
65
+ - #388 - ssl_client_cert_chain sync
66
+ - #300 - Store value in a value key and replace its content with parsed version - without root merge
67
+ - #331 - Disallow building groups without topics
68
+ - #340 - Instrumentation unification. Better and more consistent naming
69
+ - #340 - Procline instrumentation for a nicer process name
70
+ - #342 - Change default for `fetcher_max_queue_size` from `100` to `10` to lower max memory usage
71
+ - #345 - Cleanup exceptions names
72
+ - #341 - Split connection delegator into batch delegator and single_delegator
73
+ - #351 - Rename `#retrieve!` to `#parse!` on params and `#parsed` to `parse!` on params batch.
74
+ - #351 - Adds '#first' for params_batch that returns parsed first element from the params_batch object.
75
+ - #360 - Single params consuming mode automatically parses data specs
76
+ - #359 - Divide mark_as_consumed into mark_as_consumed and mark_as_consumed!
77
+ - #356 - Provide a `#values` for params_batch to extract only values of objects from the params_batch
78
+ - #363 - Too shallow ruby-kafka version lock
79
+ - #354 - Expose consumer heartbeat
80
+ - #377 - Remove the persistent setup in favor of persistence
81
+ - #375 - Sidekiq Backend parser mismatch
82
+ - #369 - Single consumer can support more than one topic
83
+ - #288 - Drop dependency on `activesupport` gem
84
+ - #371 - SASL over SSL
85
+ - #392 - Move params redundant data to metadata
86
+ - #335 - Metadata access from within the consumer
87
+ - #402 - Delayed reconnection upon critical failures
88
+ - #405 - `reconnect_timeout` value is now being validated
89
+ - #437 - Specs ensuring that the `#437` won't occur in the `1.3` release
90
+ - #426 - ssl client cert key password
91
+ - #444 - add certificate and private key validation
92
+ - #460 - Decouple responder "parser" (generator?) from topic.parser (benissimo)
93
+ - #463 - Split parsers into serializers / deserializers
94
+ - #473 - Support SASL OAuthBearer Authentication
95
+ - #475 - Disallow subscribing to the same topic with multiple consumers
96
+ - #485 - Setting shutdown_timeout to nil kills the app without waiting for anything
97
+ - #487 - Make listeners as instances
98
+ - #29 - Consumer class names must have the word "Consumer" in it in order to work (Sidekiq backend)
99
+ - #491 - irb is missing for console to work
100
+ - #502 - Karafka process hangs when sending multiple sigkills
101
+ - #506 - ssl_verify_hostname sync
102
+ - #483 - Upgrade dry-validation before releasing 1.3
103
+ - #492 - Use Zeitwerk for code reload in development
104
+ - #508 - Reset the consumers instances upon reconnecting to a cluster
105
+ - [#530](https://github.com/karafka/karafka/pull/530) - expose ruby and ruby-kafka version
106
+ - [534](https://github.com/karafka/karafka/pull/534) - Allow to use headers in the deserializer object
107
+ - [#319](https://github.com/karafka/karafka/pull/328) - Support for exponential backoff in pause
108
+
109
+ ## 1.2.11
110
+ - [#470](https://github.com/karafka/karafka/issues/470) Karafka not working with dry-configurable 0.8
111
+
112
+ ## 1.2.10
113
+ - [#453](https://github.com/karafka/karafka/pull/453) require `Forwardable` module
114
+
115
+ ## 1.2.9
116
+ - Critical exceptions now will cause consumer to stop instead of retrying without a break
117
+ - #412 - Fix dry-inflector dependency lock in gemspec
118
+ - #414 - Backport to 1.2 the delayed retry upon failure
119
+ - #437 - Raw message is no longer added to params after ParserError raised
120
+
3
121
  ## 1.2.8
4
122
  - #408 - Responder Topic Lookup Bug on Heroku
5
123
 
@@ -9,6 +127,7 @@
9
127
  ## 1.2.6
10
128
  - Lock WaterDrop to 1.2.3
11
129
  - Lock Ruby-Kafka to 0.6.x (support for 0.7 will be added in Karafka 1.3)
130
+ - #382 - Full logging with AR, etc for development mode when there is Rails integration
12
131
 
13
132
  ## 1.2.5
14
133
  - #354 - Expose consumer heartbeat
@@ -19,7 +138,8 @@
19
138
 
20
139
  ## 1.2.3
21
140
  - #313 - support PLAINTEXT and SSL for scheme
22
- - #320 - Pausing indefinetely with nil pause timeout doesn't work
141
+ - #288 - drop activesupport callbacks in favor of notifications
142
+ - #320 - Pausing indefinitely with nil pause timeout doesn't work
23
143
  - #318 - Partition pausing doesn't work with custom topic mappers
24
144
  - Rename ConfigAdapter to ApiAdapter to better reflect what it does
25
145
  - #317 - Manual offset committing doesn't work with custom topic mappers
@@ -147,7 +267,7 @@
147
267
  - Switch to multi json so everyone can use their favourite JSON parser
148
268
  - Added jruby support in general and in Travis
149
269
  - #196 - Topic mapper does not map topics when subscribing thanks to @webandtech
150
- - #96 - Karafka server - possiblity to run it only for a certain topics
270
+ - #96 - Karafka server - possibility to run it only for a certain topics
151
271
  - ~~karafka worker cli option is removed (please use sidekiq directly)~~ - restored, bad idea
152
272
  - (optional) pausing upon processing failures ```pause_timeout```
153
273
  - Karafka console main process no longer intercepts irb errors
@@ -155,7 +275,7 @@
155
275
  - #204 - Long running controllers
156
276
  - Better internal API to handle multiple usage cases using ```Karafka::Controllers::Includer```
157
277
  - #207 - Rename before_enqueued to after_received
158
- - #147 - Deattach Karafka from Sidekiq by extracting Sidekiq backend
278
+ - #147 - De-attach Karafka from Sidekiq by extracting Sidekiq backend
159
279
 
160
280
  ### New features and improvements
161
281
 
@@ -240,7 +360,7 @@
240
360
  - Waterdrop 0.3.2.1 with kafka.hosts instead of kafka_hosts
241
361
  - #105 - Karafka::Monitor#caller_label not working with inherited monitors
242
362
  - #99 - Standalone mode (without Sidekiq)
243
- - #97 - Buffer responders single topics before send (prevalidation)
363
+ - #97 - Buffer responders single topics before send (pre-validation)
244
364
  - Better control over consumer thanks to additional config options
245
365
  - #111 - Dynamic worker assignment based on the income params
246
366
  - Long shutdown time fix
@@ -248,7 +368,7 @@
248
368
  ## 0.5.0
249
369
  - Removed Zookeeper totally as dependency
250
370
  - Better group and partition rebalancing
251
- - Automatic thread management (no need for tunning) - each topic is a separate actor/thread
371
+ - Automatic thread management (no need for tuning) - each topic is a separate actor/thread
252
372
  - Moved from Poseidon into Ruby-Kafka
253
373
  - No more max_concurrency setting
254
374
  - After you define your App class and routes (and everything else) you need to add execute App.boot!
@@ -264,14 +384,14 @@
264
384
  - Ruby 2.2.* support dropped
265
385
  - Using App name as a Kafka client_id
266
386
  - Automatic Capistrano integration
267
- - Responders support for handling better responses pipelining and better responses flow description and design (see README for more details)
387
+ - Responders support for handling better responses pipe-lining and better responses flow description and design (see README for more details)
268
388
  - Gem bump
269
389
  - Readme updates
270
390
  - karafka flow CLI command for printing the application flow
271
- - Some internal refactorings
391
+ - Some internal refactoring
272
392
 
273
393
  ## 0.4.2
274
- - #87 - Reconsume mode with crone for better Rails/Rack integration
394
+ - #87 - Re-consume mode with crone for better Rails/Rack integration
275
395
  - Moved Karafka server related stuff into separate Karafka::Server class
276
396
  - Renamed Karafka::Runner into Karafka::Fetcher
277
397
  - Gem bump
@@ -283,7 +403,7 @@
283
403
 
284
404
  ## 0.4.1
285
405
  - Explicit throw(:abort) required to halt before_enqueue (like in Rails 5)
286
- - #61 - Autodiscover Kafka brokers based on Zookeeper data
406
+ - #61 - autodiscovery of Kafka brokers based on Zookeeper data
287
407
  - #63 - Graceful shutdown with current offset state during data processing
288
408
  - #65 - Example of NewRelic monitor is outdated
289
409
  - #71 - Setup should be executed after user code is loaded
@@ -339,7 +459,7 @@
339
459
  - Added Karafka::Monitoring that allows to add custom logging and monitoring with external libraries and systems
340
460
  - Moved logging functionality into Karafka::Monitoring default monitoring
341
461
  - Added possibility to provide own monitoring as long as in responds to #notice and #notice_error
342
- - Standarized logging format for all logs
462
+ - Standardized logging format for all logs
343
463
 
344
464
  ## 0.3.0
345
465
  - Switched from custom ParserError for each parser to general catching of Karafka::Errors::ParseError and its descendants
@@ -356,7 +476,7 @@
356
476
 
357
477
  ## 0.1.19
358
478
  - Internal call - schedule naming change
359
- - Enqueue to perform_async naming in controller to follow Sidekiqs naming convention
479
+ - Enqueue to perform_async naming in controller to follow Sidekiq naming convention
360
480
  - Gem bump
361
481
 
362
482
  ## 0.1.18
@@ -367,7 +487,7 @@
367
487
  - Changed Karafka::Connection::Cluster tp Karafka::Connection::ActorCluster to distinguish between a single thread actor cluster for multiple topic connection and a future feature that will allow process clusterization.
368
488
  - Add an ability to use user-defined parsers for a messages
369
489
  - Lazy load params for before callbacks
370
- - Automatic loading/initializng all workers classes during startup (so Sidekiq won't fail with unknown workers exception)
490
+ - Automatic loading/initializing all workers classes during startup (so Sidekiq won't fail with unknown workers exception)
371
491
  - Params are now private to controller
372
492
  - Added bootstrap method to app.rb
373
493
 
@@ -408,7 +528,7 @@
408
528
  - Added worker logger
409
529
 
410
530
  ## 0.1.8
411
- - Droped local env suppot in favour of [Envlogic](https://github.com/karafka/envlogic) - no changes in API
531
+ - Dropped local env support in favour of [Envlogic](https://github.com/karafka/envlogic) - no changes in API
412
532
 
413
533
  ## 0.1.7
414
534
  - Karafka option for Redis hosts (not localhost only)
@@ -438,7 +558,7 @@
438
558
 
439
559
  ## 0.1.1
440
560
  - README updates
441
- - Raketasks updates
561
+ - Rake tasks updates
442
562
  - Rake installation task
443
563
  - Changelog file added
444
564
 
@@ -34,7 +34,7 @@ This Code of Conduct applies both within project spaces and in public spaces whe
34
34
 
35
35
  ## Enforcement
36
36
 
37
- Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at maciej@coditsu.io. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
37
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at maciej@mensfeld.pl. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
38
38
 
39
39
  Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
40
40
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  First, thank you for considering contributing to karafka! It's people like you that make the open source community such a great community! 😊
6
6
 
7
- We welcome any type of contribution, not only code. You can help with
7
+ We welcome any type of contribution, not only code. You can help with:
8
8
  - **QA**: file bug reports, the more details you can give the better (e.g. screenshots with the console open)
9
9
  - **Marketing**: writing blog posts, howto's, printing stickers, ...
10
10
  - **Community**: presenting the project at meetups, organizing a dedicated meetup for the local community, ...
data/Gemfile CHANGED
@@ -2,14 +2,13 @@
2
2
 
3
3
  source 'https://rubygems.org'
4
4
 
5
- gemspec
5
+ plugin 'diffend'
6
6
 
7
- group :development, :test do
8
- gem 'benchmark-ips'
9
- end
7
+ gemspec
10
8
 
11
9
  group :test do
10
+ gem 'byebug'
11
+ gem 'factory_bot'
12
12
  gem 'rspec'
13
13
  gem 'simplecov'
14
- gem 'timecop'
15
14
  end