sbmt-outbox 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +440 -0
  3. data/Rakefile +3 -0
  4. data/app/interactors/sbmt/outbox/base_create_item.rb +55 -0
  5. data/app/interactors/sbmt/outbox/create_inbox_item.rb +10 -0
  6. data/app/interactors/sbmt/outbox/create_outbox_item.rb +10 -0
  7. data/app/interactors/sbmt/outbox/dry_interactor.rb +16 -0
  8. data/app/interactors/sbmt/outbox/partition_strategies/hash_partitioning.rb +20 -0
  9. data/app/interactors/sbmt/outbox/partition_strategies/number_partitioning.rb +26 -0
  10. data/app/interactors/sbmt/outbox/process_item.rb +269 -0
  11. data/app/interactors/sbmt/outbox/retry_strategies/compacted_log.rb +41 -0
  12. data/app/interactors/sbmt/outbox/retry_strategies/exponential_backoff.rb +34 -0
  13. data/app/jobs/sbmt/outbox/base_delete_stale_items_job.rb +78 -0
  14. data/app/jobs/sbmt/outbox/delete_stale_inbox_items_job.rb +15 -0
  15. data/app/jobs/sbmt/outbox/delete_stale_outbox_items_job.rb +15 -0
  16. data/app/models/sbmt/outbox/base_item.rb +165 -0
  17. data/app/models/sbmt/outbox/base_item_config.rb +106 -0
  18. data/app/models/sbmt/outbox/inbox_item.rb +38 -0
  19. data/app/models/sbmt/outbox/inbox_item_config.rb +13 -0
  20. data/app/models/sbmt/outbox/outbox_item.rb +52 -0
  21. data/app/models/sbmt/outbox/outbox_item_config.rb +13 -0
  22. data/config/initializers/schked.rb +9 -0
  23. data/config/initializers/yabeda.rb +71 -0
  24. data/config/schedule.rb +9 -0
  25. data/exe/outbox +16 -0
  26. data/lib/generators/helpers/config.rb +46 -0
  27. data/lib/generators/helpers/initializer.rb +41 -0
  28. data/lib/generators/helpers/items.rb +17 -0
  29. data/lib/generators/helpers/migration.rb +73 -0
  30. data/lib/generators/helpers/paas.rb +17 -0
  31. data/lib/generators/helpers/values.rb +49 -0
  32. data/lib/generators/helpers.rb +8 -0
  33. data/lib/generators/outbox/install/USAGE +10 -0
  34. data/lib/generators/outbox/install/install_generator.rb +33 -0
  35. data/lib/generators/outbox/install/templates/Outboxfile +3 -0
  36. data/lib/generators/outbox/install/templates/outbox.rb +32 -0
  37. data/lib/generators/outbox/install/templates/outbox.yml +51 -0
  38. data/lib/generators/outbox/item/USAGE +12 -0
  39. data/lib/generators/outbox/item/item_generator.rb +94 -0
  40. data/lib/generators/outbox/item/templates/inbox_item.rb.tt +7 -0
  41. data/lib/generators/outbox/item/templates/outbox_item.rb.tt +16 -0
  42. data/lib/generators/outbox/transport/USAGE +19 -0
  43. data/lib/generators/outbox/transport/templates/inbox_transport.yml.erb +9 -0
  44. data/lib/generators/outbox/transport/templates/outbox_transport.yml.erb +10 -0
  45. data/lib/generators/outbox/transport/transport_generator.rb +60 -0
  46. data/lib/generators/outbox.rb +23 -0
  47. data/lib/sbmt/outbox/ascii_art.rb +62 -0
  48. data/lib/sbmt/outbox/cli.rb +100 -0
  49. data/lib/sbmt/outbox/database_switcher.rb +15 -0
  50. data/lib/sbmt/outbox/engine.rb +45 -0
  51. data/lib/sbmt/outbox/error_tracker.rb +26 -0
  52. data/lib/sbmt/outbox/errors.rb +14 -0
  53. data/lib/sbmt/outbox/instrumentation/open_telemetry_loader.rb +34 -0
  54. data/lib/sbmt/outbox/logger.rb +35 -0
  55. data/lib/sbmt/outbox/middleware/builder.rb +23 -0
  56. data/lib/sbmt/outbox/middleware/open_telemetry/tracing_create_item_middleware.rb +42 -0
  57. data/lib/sbmt/outbox/middleware/open_telemetry/tracing_item_process_middleware.rb +49 -0
  58. data/lib/sbmt/outbox/middleware/runner.rb +29 -0
  59. data/lib/sbmt/outbox/middleware/sentry/tracing_batch_process_middleware.rb +48 -0
  60. data/lib/sbmt/outbox/middleware/sentry/tracing_item_process_middleware.rb +65 -0
  61. data/lib/sbmt/outbox/middleware/sentry/transaction.rb +28 -0
  62. data/lib/sbmt/outbox/probes/probe.rb +38 -0
  63. data/lib/sbmt/outbox/redis_client_factory.rb +36 -0
  64. data/lib/sbmt/outbox/tasks/delete_failed_items.rake +17 -0
  65. data/lib/sbmt/outbox/tasks/retry_failed_items.rake +20 -0
  66. data/lib/sbmt/outbox/thread_pool.rb +108 -0
  67. data/lib/sbmt/outbox/throttler.rb +52 -0
  68. data/lib/sbmt/outbox/version.rb +7 -0
  69. data/lib/sbmt/outbox/worker.rb +233 -0
  70. data/lib/sbmt/outbox.rb +136 -0
  71. data/lib/sbmt-outbox.rb +3 -0
  72. metadata +594 -0
metadata ADDED
@@ -0,0 +1,594 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sbmt-outbox
3
+ version: !ruby/object:Gem::Version
4
+ version: 5.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Sbermarket Ruby-Platform Team
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2024-02-27 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: connection_pool
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: cutoff
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.5'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.5'
41
+ - !ruby/object:Gem::Dependency
42
+ name: dry-initializer
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: dry-monads
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.3'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.3'
69
+ - !ruby/object:Gem::Dependency
70
+ name: exponential-backoff
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '0.0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '0.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rails
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '5.2'
90
+ - - "<"
91
+ - !ruby/object:Gem::Version
92
+ version: '8'
93
+ type: :runtime
94
+ prerelease: false
95
+ version_requirements: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: '5.2'
100
+ - - "<"
101
+ - !ruby/object:Gem::Version
102
+ version: '8'
103
+ - !ruby/object:Gem::Dependency
104
+ name: yabeda
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '0.8'
110
+ type: :runtime
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '0.8'
117
+ - !ruby/object:Gem::Dependency
118
+ name: thor
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: '0.20'
124
+ - - "<"
125
+ - !ruby/object:Gem::Version
126
+ version: '2'
127
+ type: :runtime
128
+ prerelease: false
129
+ version_requirements: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - ">="
132
+ - !ruby/object:Gem::Version
133
+ version: '0.20'
134
+ - - "<"
135
+ - !ruby/object:Gem::Version
136
+ version: '2'
137
+ - !ruby/object:Gem::Dependency
138
+ name: redlock
139
+ requirement: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - ">"
142
+ - !ruby/object:Gem::Version
143
+ version: '1.0'
144
+ - - "<"
145
+ - !ruby/object:Gem::Version
146
+ version: '3.0'
147
+ type: :runtime
148
+ prerelease: false
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - ">"
152
+ - !ruby/object:Gem::Version
153
+ version: '1.0'
154
+ - - "<"
155
+ - !ruby/object:Gem::Version
156
+ version: '3.0'
157
+ - !ruby/object:Gem::Dependency
158
+ name: redis-client
159
+ requirement: !ruby/object:Gem::Requirement
160
+ requirements:
161
+ - - ">="
162
+ - !ruby/object:Gem::Version
163
+ version: 0.14.1
164
+ - - "<"
165
+ - !ruby/object:Gem::Version
166
+ version: 1.0.0
167
+ type: :runtime
168
+ prerelease: false
169
+ version_requirements: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: 0.14.1
174
+ - - "<"
175
+ - !ruby/object:Gem::Version
176
+ version: 1.0.0
177
+ - !ruby/object:Gem::Dependency
178
+ name: http_health_check
179
+ requirement: !ruby/object:Gem::Requirement
180
+ requirements:
181
+ - - "~>"
182
+ - !ruby/object:Gem::Version
183
+ version: '0.5'
184
+ type: :runtime
185
+ prerelease: false
186
+ version_requirements: !ruby/object:Gem::Requirement
187
+ requirements:
188
+ - - "~>"
189
+ - !ruby/object:Gem::Version
190
+ version: '0.5'
191
+ - !ruby/object:Gem::Dependency
192
+ name: appraisal
193
+ requirement: !ruby/object:Gem::Requirement
194
+ requirements:
195
+ - - ">="
196
+ - !ruby/object:Gem::Version
197
+ version: '0'
198
+ type: :development
199
+ prerelease: false
200
+ version_requirements: !ruby/object:Gem::Requirement
201
+ requirements:
202
+ - - ">="
203
+ - !ruby/object:Gem::Version
204
+ version: '0'
205
+ - !ruby/object:Gem::Dependency
206
+ name: bundler
207
+ requirement: !ruby/object:Gem::Requirement
208
+ requirements:
209
+ - - ">="
210
+ - !ruby/object:Gem::Version
211
+ version: '0'
212
+ type: :development
213
+ prerelease: false
214
+ version_requirements: !ruby/object:Gem::Requirement
215
+ requirements:
216
+ - - ">="
217
+ - !ruby/object:Gem::Version
218
+ version: '0'
219
+ - !ruby/object:Gem::Dependency
220
+ name: combustion
221
+ requirement: !ruby/object:Gem::Requirement
222
+ requirements:
223
+ - - ">="
224
+ - !ruby/object:Gem::Version
225
+ version: '0'
226
+ type: :development
227
+ prerelease: false
228
+ version_requirements: !ruby/object:Gem::Requirement
229
+ requirements:
230
+ - - ">="
231
+ - !ruby/object:Gem::Version
232
+ version: '0'
233
+ - !ruby/object:Gem::Dependency
234
+ name: factory_bot_rails
235
+ requirement: !ruby/object:Gem::Requirement
236
+ requirements:
237
+ - - ">="
238
+ - !ruby/object:Gem::Version
239
+ version: '0'
240
+ type: :development
241
+ prerelease: false
242
+ version_requirements: !ruby/object:Gem::Requirement
243
+ requirements:
244
+ - - ">="
245
+ - !ruby/object:Gem::Version
246
+ version: '0'
247
+ - !ruby/object:Gem::Dependency
248
+ name: pg
249
+ requirement: !ruby/object:Gem::Requirement
250
+ requirements:
251
+ - - ">="
252
+ - !ruby/object:Gem::Version
253
+ version: '0'
254
+ type: :development
255
+ prerelease: false
256
+ version_requirements: !ruby/object:Gem::Requirement
257
+ requirements:
258
+ - - ">="
259
+ - !ruby/object:Gem::Version
260
+ version: '0'
261
+ - !ruby/object:Gem::Dependency
262
+ name: rake
263
+ requirement: !ruby/object:Gem::Requirement
264
+ requirements:
265
+ - - ">="
266
+ - !ruby/object:Gem::Version
267
+ version: '0'
268
+ type: :development
269
+ prerelease: false
270
+ version_requirements: !ruby/object:Gem::Requirement
271
+ requirements:
272
+ - - ">="
273
+ - !ruby/object:Gem::Version
274
+ version: '0'
275
+ - !ruby/object:Gem::Dependency
276
+ name: rspec
277
+ requirement: !ruby/object:Gem::Requirement
278
+ requirements:
279
+ - - ">="
280
+ - !ruby/object:Gem::Version
281
+ version: '0'
282
+ type: :development
283
+ prerelease: false
284
+ version_requirements: !ruby/object:Gem::Requirement
285
+ requirements:
286
+ - - ">="
287
+ - !ruby/object:Gem::Version
288
+ version: '0'
289
+ - !ruby/object:Gem::Dependency
290
+ name: rspec-rails
291
+ requirement: !ruby/object:Gem::Requirement
292
+ requirements:
293
+ - - ">="
294
+ - !ruby/object:Gem::Version
295
+ version: '0'
296
+ type: :development
297
+ prerelease: false
298
+ version_requirements: !ruby/object:Gem::Requirement
299
+ requirements:
300
+ - - ">="
301
+ - !ruby/object:Gem::Version
302
+ version: '0'
303
+ - !ruby/object:Gem::Dependency
304
+ name: rspec_junit_formatter
305
+ requirement: !ruby/object:Gem::Requirement
306
+ requirements:
307
+ - - ">="
308
+ - !ruby/object:Gem::Version
309
+ version: '0'
310
+ type: :development
311
+ prerelease: false
312
+ version_requirements: !ruby/object:Gem::Requirement
313
+ requirements:
314
+ - - ">="
315
+ - !ruby/object:Gem::Version
316
+ version: '0'
317
+ - !ruby/object:Gem::Dependency
318
+ name: rubocop
319
+ requirement: !ruby/object:Gem::Requirement
320
+ requirements:
321
+ - - ">="
322
+ - !ruby/object:Gem::Version
323
+ version: '0'
324
+ type: :development
325
+ prerelease: false
326
+ version_requirements: !ruby/object:Gem::Requirement
327
+ requirements:
328
+ - - ">="
329
+ - !ruby/object:Gem::Version
330
+ version: '0'
331
+ - !ruby/object:Gem::Dependency
332
+ name: rubocop-rails
333
+ requirement: !ruby/object:Gem::Requirement
334
+ requirements:
335
+ - - ">="
336
+ - !ruby/object:Gem::Version
337
+ version: '0'
338
+ type: :development
339
+ prerelease: false
340
+ version_requirements: !ruby/object:Gem::Requirement
341
+ requirements:
342
+ - - ">="
343
+ - !ruby/object:Gem::Version
344
+ version: '0'
345
+ - !ruby/object:Gem::Dependency
346
+ name: rubocop-rspec
347
+ requirement: !ruby/object:Gem::Requirement
348
+ requirements:
349
+ - - ">="
350
+ - !ruby/object:Gem::Version
351
+ version: '0'
352
+ type: :development
353
+ prerelease: false
354
+ version_requirements: !ruby/object:Gem::Requirement
355
+ requirements:
356
+ - - ">="
357
+ - !ruby/object:Gem::Version
358
+ version: '0'
359
+ - !ruby/object:Gem::Dependency
360
+ name: rubocop-performance
361
+ requirement: !ruby/object:Gem::Requirement
362
+ requirements:
363
+ - - ">="
364
+ - !ruby/object:Gem::Version
365
+ version: '0'
366
+ type: :development
367
+ prerelease: false
368
+ version_requirements: !ruby/object:Gem::Requirement
369
+ requirements:
370
+ - - ">="
371
+ - !ruby/object:Gem::Version
372
+ version: '0'
373
+ - !ruby/object:Gem::Dependency
374
+ name: standard
375
+ requirement: !ruby/object:Gem::Requirement
376
+ requirements:
377
+ - - ">="
378
+ - !ruby/object:Gem::Version
379
+ version: '1.7'
380
+ type: :development
381
+ prerelease: false
382
+ version_requirements: !ruby/object:Gem::Requirement
383
+ requirements:
384
+ - - ">="
385
+ - !ruby/object:Gem::Version
386
+ version: '1.7'
387
+ - !ruby/object:Gem::Dependency
388
+ name: schked
389
+ requirement: !ruby/object:Gem::Requirement
390
+ requirements:
391
+ - - ">="
392
+ - !ruby/object:Gem::Version
393
+ version: '0.3'
394
+ - - "<"
395
+ - !ruby/object:Gem::Version
396
+ version: '2'
397
+ type: :development
398
+ prerelease: false
399
+ version_requirements: !ruby/object:Gem::Requirement
400
+ requirements:
401
+ - - ">="
402
+ - !ruby/object:Gem::Version
403
+ version: '0.3'
404
+ - - "<"
405
+ - !ruby/object:Gem::Version
406
+ version: '2'
407
+ - !ruby/object:Gem::Dependency
408
+ name: zeitwerk
409
+ requirement: !ruby/object:Gem::Requirement
410
+ requirements:
411
+ - - ">="
412
+ - !ruby/object:Gem::Version
413
+ version: '0'
414
+ type: :development
415
+ prerelease: false
416
+ version_requirements: !ruby/object:Gem::Requirement
417
+ requirements:
418
+ - - ">="
419
+ - !ruby/object:Gem::Version
420
+ version: '0'
421
+ - !ruby/object:Gem::Dependency
422
+ name: sentry-rails
423
+ requirement: !ruby/object:Gem::Requirement
424
+ requirements:
425
+ - - ">"
426
+ - !ruby/object:Gem::Version
427
+ version: 5.2.0
428
+ type: :development
429
+ prerelease: false
430
+ version_requirements: !ruby/object:Gem::Requirement
431
+ requirements:
432
+ - - ">"
433
+ - !ruby/object:Gem::Version
434
+ version: 5.2.0
435
+ - !ruby/object:Gem::Dependency
436
+ name: opentelemetry-sdk
437
+ requirement: !ruby/object:Gem::Requirement
438
+ requirements:
439
+ - - ">="
440
+ - !ruby/object:Gem::Version
441
+ version: '0'
442
+ type: :development
443
+ prerelease: false
444
+ version_requirements: !ruby/object:Gem::Requirement
445
+ requirements:
446
+ - - ">="
447
+ - !ruby/object:Gem::Version
448
+ version: '0'
449
+ - !ruby/object:Gem::Dependency
450
+ name: opentelemetry-api
451
+ requirement: !ruby/object:Gem::Requirement
452
+ requirements:
453
+ - - ">="
454
+ - !ruby/object:Gem::Version
455
+ version: 0.17.0
456
+ type: :development
457
+ prerelease: false
458
+ version_requirements: !ruby/object:Gem::Requirement
459
+ requirements:
460
+ - - ">="
461
+ - !ruby/object:Gem::Version
462
+ version: 0.17.0
463
+ - !ruby/object:Gem::Dependency
464
+ name: opentelemetry-common
465
+ requirement: !ruby/object:Gem::Requirement
466
+ requirements:
467
+ - - ">="
468
+ - !ruby/object:Gem::Version
469
+ version: 0.17.0
470
+ type: :development
471
+ prerelease: false
472
+ version_requirements: !ruby/object:Gem::Requirement
473
+ requirements:
474
+ - - ">="
475
+ - !ruby/object:Gem::Version
476
+ version: 0.17.0
477
+ - !ruby/object:Gem::Dependency
478
+ name: opentelemetry-instrumentation-base
479
+ requirement: !ruby/object:Gem::Requirement
480
+ requirements:
481
+ - - ">="
482
+ - !ruby/object:Gem::Version
483
+ version: 0.17.0
484
+ type: :development
485
+ prerelease: false
486
+ version_requirements: !ruby/object:Gem::Requirement
487
+ requirements:
488
+ - - ">="
489
+ - !ruby/object:Gem::Version
490
+ version: 0.17.0
491
+ description: A service that uses a relational database inserts messages/events into
492
+ an outbox table as part of the local transaction.
493
+ email:
494
+ - mikhail.merkushin@sbermarket.ru
495
+ executables:
496
+ - outbox
497
+ extensions: []
498
+ extra_rdoc_files: []
499
+ files:
500
+ - README.md
501
+ - Rakefile
502
+ - app/interactors/sbmt/outbox/base_create_item.rb
503
+ - app/interactors/sbmt/outbox/create_inbox_item.rb
504
+ - app/interactors/sbmt/outbox/create_outbox_item.rb
505
+ - app/interactors/sbmt/outbox/dry_interactor.rb
506
+ - app/interactors/sbmt/outbox/partition_strategies/hash_partitioning.rb
507
+ - app/interactors/sbmt/outbox/partition_strategies/number_partitioning.rb
508
+ - app/interactors/sbmt/outbox/process_item.rb
509
+ - app/interactors/sbmt/outbox/retry_strategies/compacted_log.rb
510
+ - app/interactors/sbmt/outbox/retry_strategies/exponential_backoff.rb
511
+ - app/jobs/sbmt/outbox/base_delete_stale_items_job.rb
512
+ - app/jobs/sbmt/outbox/delete_stale_inbox_items_job.rb
513
+ - app/jobs/sbmt/outbox/delete_stale_outbox_items_job.rb
514
+ - app/models/sbmt/outbox/base_item.rb
515
+ - app/models/sbmt/outbox/base_item_config.rb
516
+ - app/models/sbmt/outbox/inbox_item.rb
517
+ - app/models/sbmt/outbox/inbox_item_config.rb
518
+ - app/models/sbmt/outbox/outbox_item.rb
519
+ - app/models/sbmt/outbox/outbox_item_config.rb
520
+ - config/initializers/schked.rb
521
+ - config/initializers/yabeda.rb
522
+ - config/schedule.rb
523
+ - exe/outbox
524
+ - lib/generators/helpers.rb
525
+ - lib/generators/helpers/config.rb
526
+ - lib/generators/helpers/initializer.rb
527
+ - lib/generators/helpers/items.rb
528
+ - lib/generators/helpers/migration.rb
529
+ - lib/generators/helpers/paas.rb
530
+ - lib/generators/helpers/values.rb
531
+ - lib/generators/outbox.rb
532
+ - lib/generators/outbox/install/USAGE
533
+ - lib/generators/outbox/install/install_generator.rb
534
+ - lib/generators/outbox/install/templates/Outboxfile
535
+ - lib/generators/outbox/install/templates/outbox.rb
536
+ - lib/generators/outbox/install/templates/outbox.yml
537
+ - lib/generators/outbox/item/USAGE
538
+ - lib/generators/outbox/item/item_generator.rb
539
+ - lib/generators/outbox/item/templates/inbox_item.rb.tt
540
+ - lib/generators/outbox/item/templates/outbox_item.rb.tt
541
+ - lib/generators/outbox/transport/USAGE
542
+ - lib/generators/outbox/transport/templates/inbox_transport.yml.erb
543
+ - lib/generators/outbox/transport/templates/outbox_transport.yml.erb
544
+ - lib/generators/outbox/transport/transport_generator.rb
545
+ - lib/sbmt-outbox.rb
546
+ - lib/sbmt/outbox.rb
547
+ - lib/sbmt/outbox/ascii_art.rb
548
+ - lib/sbmt/outbox/cli.rb
549
+ - lib/sbmt/outbox/database_switcher.rb
550
+ - lib/sbmt/outbox/engine.rb
551
+ - lib/sbmt/outbox/error_tracker.rb
552
+ - lib/sbmt/outbox/errors.rb
553
+ - lib/sbmt/outbox/instrumentation/open_telemetry_loader.rb
554
+ - lib/sbmt/outbox/logger.rb
555
+ - lib/sbmt/outbox/middleware/builder.rb
556
+ - lib/sbmt/outbox/middleware/open_telemetry/tracing_create_item_middleware.rb
557
+ - lib/sbmt/outbox/middleware/open_telemetry/tracing_item_process_middleware.rb
558
+ - lib/sbmt/outbox/middleware/runner.rb
559
+ - lib/sbmt/outbox/middleware/sentry/tracing_batch_process_middleware.rb
560
+ - lib/sbmt/outbox/middleware/sentry/tracing_item_process_middleware.rb
561
+ - lib/sbmt/outbox/middleware/sentry/transaction.rb
562
+ - lib/sbmt/outbox/probes/probe.rb
563
+ - lib/sbmt/outbox/redis_client_factory.rb
564
+ - lib/sbmt/outbox/tasks/delete_failed_items.rake
565
+ - lib/sbmt/outbox/tasks/retry_failed_items.rake
566
+ - lib/sbmt/outbox/thread_pool.rb
567
+ - lib/sbmt/outbox/throttler.rb
568
+ - lib/sbmt/outbox/version.rb
569
+ - lib/sbmt/outbox/worker.rb
570
+ homepage: https://github.com/SberMarket-Tech/sbmt-outbox
571
+ licenses:
572
+ - MIT
573
+ metadata:
574
+ allowed_push_host: https://rubygems.org
575
+ post_install_message:
576
+ rdoc_options: []
577
+ require_paths:
578
+ - lib
579
+ required_ruby_version: !ruby/object:Gem::Requirement
580
+ requirements:
581
+ - - ">="
582
+ - !ruby/object:Gem::Version
583
+ version: '2.7'
584
+ required_rubygems_version: !ruby/object:Gem::Requirement
585
+ requirements:
586
+ - - ">="
587
+ - !ruby/object:Gem::Version
588
+ version: '0'
589
+ requirements: []
590
+ rubygems_version: 3.4.10
591
+ signing_key:
592
+ specification_version: 4
593
+ summary: Outbox service
594
+ test_files: []