buz 2.15.3__tar.gz → 2.15.5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (256) hide show
  1. {buz-2.15.3 → buz-2.15.5}/PKG-INFO +1 -2
  2. {buz-2.15.3 → buz-2.15.5}/pyproject.toml +2 -3
  3. buz-2.15.5/src/buz/event/infrastructure/buz_kafka/exceptions/max_consumer_retry_exception.py +8 -0
  4. {buz-2.15.3 → buz-2.15.5}/src/buz/event/infrastructure/buz_kafka/kafka_event_async_subscriber_executor.py +25 -2
  5. {buz-2.15.3 → buz-2.15.5}/src/buz/event/infrastructure/buz_kafka/kafka_event_sync_subscriber_executor.py +27 -4
  6. {buz-2.15.3 → buz-2.15.5}/LICENSE +0 -0
  7. {buz-2.15.3 → buz-2.15.5}/README.md +0 -0
  8. {buz-2.15.3 → buz-2.15.5}/src/buz/__init__.py +0 -0
  9. {buz-2.15.3 → buz-2.15.5}/src/buz/command/__init__.py +0 -0
  10. {buz-2.15.3 → buz-2.15.5}/src/buz/command/asynchronous/__init__.py +0 -0
  11. {buz-2.15.3 → buz-2.15.5}/src/buz/command/asynchronous/base_command_handler.py +0 -0
  12. {buz-2.15.3 → buz-2.15.5}/src/buz/command/asynchronous/command_bus.py +0 -0
  13. {buz-2.15.3 → buz-2.15.5}/src/buz/command/asynchronous/command_handler.py +0 -0
  14. {buz-2.15.3 → buz-2.15.5}/src/buz/command/asynchronous/middleware/__init__.py +0 -0
  15. {buz-2.15.3 → buz-2.15.5}/src/buz/command/asynchronous/middleware/base_handle_middleware.py +0 -0
  16. {buz-2.15.3 → buz-2.15.5}/src/buz/command/asynchronous/middleware/handle_middleware.py +0 -0
  17. {buz-2.15.3 → buz-2.15.5}/src/buz/command/asynchronous/middleware/handle_middleware_chain_resolver.py +0 -0
  18. {buz-2.15.3 → buz-2.15.5}/src/buz/command/asynchronous/self_process/__init__.py +0 -0
  19. {buz-2.15.3 → buz-2.15.5}/src/buz/command/asynchronous/self_process/self_process_command_bus.py +0 -0
  20. {buz-2.15.3 → buz-2.15.5}/src/buz/command/command.py +0 -0
  21. {buz-2.15.3 → buz-2.15.5}/src/buz/command/more_than_one_command_handler_related_exception.py +0 -0
  22. {buz-2.15.3 → buz-2.15.5}/src/buz/command/synchronous/__init__.py +0 -0
  23. {buz-2.15.3 → buz-2.15.5}/src/buz/command/synchronous/base_command_handler.py +0 -0
  24. {buz-2.15.3 → buz-2.15.5}/src/buz/command/synchronous/command_bus.py +0 -0
  25. {buz-2.15.3 → buz-2.15.5}/src/buz/command/synchronous/command_handler.py +0 -0
  26. {buz-2.15.3 → buz-2.15.5}/src/buz/command/synchronous/middleware/__init__.py +0 -0
  27. {buz-2.15.3 → buz-2.15.5}/src/buz/command/synchronous/middleware/base_handle_middleware.py +0 -0
  28. {buz-2.15.3 → buz-2.15.5}/src/buz/command/synchronous/middleware/handle_middleware.py +0 -0
  29. {buz-2.15.3 → buz-2.15.5}/src/buz/command/synchronous/middleware/handle_middleware_chain_resolver.py +0 -0
  30. {buz-2.15.3 → buz-2.15.5}/src/buz/command/synchronous/self_process/__init__.py +0 -0
  31. {buz-2.15.3 → buz-2.15.5}/src/buz/command/synchronous/self_process/self_process_command_bus.py +0 -0
  32. {buz-2.15.3 → buz-2.15.5}/src/buz/command/synchronous/synced_async/__init__.py +0 -0
  33. {buz-2.15.3 → buz-2.15.5}/src/buz/command/synchronous/synced_async/synced_async_command_bus.py +0 -0
  34. {buz-2.15.3 → buz-2.15.5}/src/buz/event/__init__.py +0 -0
  35. {buz-2.15.3 → buz-2.15.5}/src/buz/event/async_consumer.py +0 -0
  36. {buz-2.15.3 → buz-2.15.5}/src/buz/event/async_event_bus.py +0 -0
  37. {buz-2.15.3 → buz-2.15.5}/src/buz/event/async_subscriber.py +0 -0
  38. {buz-2.15.3 → buz-2.15.5}/src/buz/event/async_worker.py +0 -0
  39. {buz-2.15.3 → buz-2.15.5}/src/buz/event/base_async_subscriber.py +0 -0
  40. {buz-2.15.3 → buz-2.15.5}/src/buz/event/base_subscriber.py +0 -0
  41. {buz-2.15.3 → buz-2.15.5}/src/buz/event/consumer.py +0 -0
  42. {buz-2.15.3 → buz-2.15.5}/src/buz/event/dead_letter_queue/__init__.py +0 -0
  43. {buz-2.15.3 → buz-2.15.5}/src/buz/event/dead_letter_queue/dlq_criteria.py +0 -0
  44. {buz-2.15.3 → buz-2.15.5}/src/buz/event/dead_letter_queue/dlq_record.py +0 -0
  45. {buz-2.15.3 → buz-2.15.5}/src/buz/event/dead_letter_queue/dlq_repository.py +0 -0
  46. {buz-2.15.3 → buz-2.15.5}/src/buz/event/event.py +0 -0
  47. {buz-2.15.3 → buz-2.15.5}/src/buz/event/event_bus.py +0 -0
  48. {buz-2.15.3 → buz-2.15.5}/src/buz/event/exceptions/__init__.py +0 -0
  49. {buz-2.15.3 → buz-2.15.5}/src/buz/event/exceptions/event_not_published_exception.py +0 -0
  50. {buz-2.15.3 → buz-2.15.5}/src/buz/event/exceptions/event_restore_exception.py +0 -0
  51. {buz-2.15.3 → buz-2.15.5}/src/buz/event/exceptions/subscribers_not_found_exception.py +0 -0
  52. {buz-2.15.3 → buz-2.15.5}/src/buz/event/exceptions/term_signal_interruption_exception.py +0 -0
  53. {buz-2.15.3 → buz-2.15.5}/src/buz/event/exceptions/worker_execution_exception.py +0 -0
  54. {buz-2.15.3 → buz-2.15.5}/src/buz/event/infrastructure/__init__.py +0 -0
  55. {buz-2.15.3 → buz-2.15.5}/src/buz/event/infrastructure/buz_kafka/__init__.py +0 -0
  56. {buz-2.15.3 → buz-2.15.5}/src/buz/event/infrastructure/buz_kafka/async_buz_kafka_event_bus.py +0 -0
  57. {buz-2.15.3 → buz-2.15.5}/src/buz/event/infrastructure/buz_kafka/base_buz_aiokafka_async_consumer.py +0 -0
  58. {buz-2.15.3 → buz-2.15.5}/src/buz/event/infrastructure/buz_kafka/buz_aiokafka_async_consumer.py +0 -0
  59. {buz-2.15.3 → buz-2.15.5}/src/buz/event/infrastructure/buz_kafka/buz_aiokafka_multi_threaded_consumer.py +0 -0
  60. {buz-2.15.3 → buz-2.15.5}/src/buz/event/infrastructure/buz_kafka/buz_kafka_event_bus.py +0 -0
  61. {buz-2.15.3 → buz-2.15.5}/src/buz/event/infrastructure/buz_kafka/consume_strategy/__init__.py +0 -0
  62. {buz-2.15.3 → buz-2.15.5}/src/buz/event/infrastructure/buz_kafka/consume_strategy/consume_strategy.py +0 -0
  63. {buz-2.15.3 → buz-2.15.5}/src/buz/event/infrastructure/buz_kafka/consume_strategy/kafka_on_fail_strategy.py +0 -0
  64. {buz-2.15.3 → buz-2.15.5}/src/buz/event/infrastructure/buz_kafka/consume_strategy/topic_and_subscription_group_per_subscriber_kafka_consumer_strategy.py +0 -0
  65. {buz-2.15.3 → buz-2.15.5}/src/buz/event/infrastructure/buz_kafka/exceptions/__init__.py +0 -0
  66. {buz-2.15.3 → buz-2.15.5}/src/buz/event/infrastructure/buz_kafka/exceptions/kafka_event_bus_config_not_valid_exception.py +0 -0
  67. {buz-2.15.3 → buz-2.15.5}/src/buz/event/infrastructure/buz_kafka/exceptions/retry_exception.py +0 -0
  68. {buz-2.15.3 → buz-2.15.5}/src/buz/event/infrastructure/buz_kafka/kafka_event_subscriber_executor.py +0 -0
  69. {buz-2.15.3 → buz-2.15.5}/src/buz/event/infrastructure/buz_kafka/publish_strategy/__init__.py +0 -0
  70. {buz-2.15.3 → buz-2.15.5}/src/buz/event/infrastructure/buz_kafka/publish_strategy/publish_strategy.py +0 -0
  71. {buz-2.15.3 → buz-2.15.5}/src/buz/event/infrastructure/buz_kafka/publish_strategy/topic_per_event_kafka_publish_strategy.py +0 -0
  72. {buz-2.15.3 → buz-2.15.5}/src/buz/event/infrastructure/kombu/__init__.py +0 -0
  73. {buz-2.15.3 → buz-2.15.5}/src/buz/event/infrastructure/kombu/allowed_kombu_serializer.py +0 -0
  74. {buz-2.15.3 → buz-2.15.5}/src/buz/event/infrastructure/kombu/consume_strategy/__init__.py +0 -0
  75. {buz-2.15.3 → buz-2.15.5}/src/buz/event/infrastructure/kombu/consume_strategy/consume_strategy.py +0 -0
  76. {buz-2.15.3 → buz-2.15.5}/src/buz/event/infrastructure/kombu/consume_strategy/queue_per_subscriber_consume_strategy.py +0 -0
  77. {buz-2.15.3 → buz-2.15.5}/src/buz/event/infrastructure/kombu/kombu_consumer.py +0 -0
  78. {buz-2.15.3 → buz-2.15.5}/src/buz/event/infrastructure/kombu/kombu_event_bus.py +0 -0
  79. {buz-2.15.3 → buz-2.15.5}/src/buz/event/infrastructure/kombu/publish_strategy/__init__.py +0 -0
  80. {buz-2.15.3 → buz-2.15.5}/src/buz/event/infrastructure/kombu/publish_strategy/fanout_exchange_per_event_publish_strategy.py +0 -0
  81. {buz-2.15.3 → buz-2.15.5}/src/buz/event/infrastructure/kombu/publish_strategy/publish_strategy.py +0 -0
  82. {buz-2.15.3 → buz-2.15.5}/src/buz/event/infrastructure/kombu/retry_strategy/__init__.py +0 -0
  83. {buz-2.15.3 → buz-2.15.5}/src/buz/event/infrastructure/kombu/retry_strategy/publish_retry_policy.py +0 -0
  84. {buz-2.15.3 → buz-2.15.5}/src/buz/event/infrastructure/kombu/retry_strategy/simple_publish_retry_policy.py +0 -0
  85. {buz-2.15.3 → buz-2.15.5}/src/buz/event/infrastructure/models/consuming_task.py +0 -0
  86. {buz-2.15.3 → buz-2.15.5}/src/buz/event/infrastructure/queue/__init__.py +0 -0
  87. {buz-2.15.3 → buz-2.15.5}/src/buz/event/meta_base_subscriber.py +0 -0
  88. {buz-2.15.3 → buz-2.15.5}/src/buz/event/meta_subscriber.py +0 -0
  89. {buz-2.15.3 → buz-2.15.5}/src/buz/event/middleware/__init__.py +0 -0
  90. {buz-2.15.3 → buz-2.15.5}/src/buz/event/middleware/async_consume_middleware.py +0 -0
  91. {buz-2.15.3 → buz-2.15.5}/src/buz/event/middleware/async_consume_middleware_chain_resolver.py +0 -0
  92. {buz-2.15.3 → buz-2.15.5}/src/buz/event/middleware/async_publish_middleware.py +0 -0
  93. {buz-2.15.3 → buz-2.15.5}/src/buz/event/middleware/async_publish_middleware_chain_resolver.py +0 -0
  94. {buz-2.15.3 → buz-2.15.5}/src/buz/event/middleware/base_async_consume_middleware.py +0 -0
  95. {buz-2.15.3 → buz-2.15.5}/src/buz/event/middleware/base_consume_middleware.py +0 -0
  96. {buz-2.15.3 → buz-2.15.5}/src/buz/event/middleware/base_publish_middleware.py +0 -0
  97. {buz-2.15.3 → buz-2.15.5}/src/buz/event/middleware/consume_middleware.py +0 -0
  98. {buz-2.15.3 → buz-2.15.5}/src/buz/event/middleware/consume_middleware_chain_resolver.py +0 -0
  99. {buz-2.15.3 → buz-2.15.5}/src/buz/event/middleware/exceptions/__init__.py +0 -0
  100. {buz-2.15.3 → buz-2.15.5}/src/buz/event/middleware/exceptions/event_already_in_progress_exception.py +0 -0
  101. {buz-2.15.3 → buz-2.15.5}/src/buz/event/middleware/publish_middleware.py +0 -0
  102. {buz-2.15.3 → buz-2.15.5}/src/buz/event/middleware/publish_middleware_chain_resolver.py +0 -0
  103. {buz-2.15.3 → buz-2.15.5}/src/buz/event/strategies/__init__.py +0 -0
  104. {buz-2.15.3 → buz-2.15.5}/src/buz/event/strategies/execution_strategy/__init__.py +0 -0
  105. {buz-2.15.3 → buz-2.15.5}/src/buz/event/strategies/execution_strategy/async_execution_strategy.py +0 -0
  106. {buz-2.15.3 → buz-2.15.5}/src/buz/event/strategies/execution_strategy/async_self_process_execution_strategy.py +0 -0
  107. {buz-2.15.3 → buz-2.15.5}/src/buz/event/strategies/execution_strategy/cyclic_iterator_execution_strategy.py +0 -0
  108. {buz-2.15.3 → buz-2.15.5}/src/buz/event/strategies/execution_strategy/execution_strategy.py +0 -0
  109. {buz-2.15.3 → buz-2.15.5}/src/buz/event/strategies/execution_strategy/self_process_execution_strategy.py +0 -0
  110. {buz-2.15.3 → buz-2.15.5}/src/buz/event/strategies/retry/__init__.py +0 -0
  111. {buz-2.15.3 → buz-2.15.5}/src/buz/event/strategies/retry/consume_retrier.py +0 -0
  112. {buz-2.15.3 → buz-2.15.5}/src/buz/event/strategies/retry/consumed_event_retry.py +0 -0
  113. {buz-2.15.3 → buz-2.15.5}/src/buz/event/strategies/retry/consumed_event_retry_repository.py +0 -0
  114. {buz-2.15.3 → buz-2.15.5}/src/buz/event/strategies/retry/max_retries_consume_retrier.py +0 -0
  115. {buz-2.15.3 → buz-2.15.5}/src/buz/event/strategies/retry/max_retries_negative_exception.py +0 -0
  116. {buz-2.15.3 → buz-2.15.5}/src/buz/event/strategies/retry/reject_callback.py +0 -0
  117. {buz-2.15.3 → buz-2.15.5}/src/buz/event/subscriber.py +0 -0
  118. {buz-2.15.3 → buz-2.15.5}/src/buz/event/sync/__init__.py +0 -0
  119. {buz-2.15.3 → buz-2.15.5}/src/buz/event/sync/sync_event_bus.py +0 -0
  120. {buz-2.15.3 → buz-2.15.5}/src/buz/event/transactional_outbox/__init__.py +0 -0
  121. {buz-2.15.3 → buz-2.15.5}/src/buz/event/transactional_outbox/event_to_outbox_record_translator.py +0 -0
  122. {buz-2.15.3 → buz-2.15.5}/src/buz/event/transactional_outbox/fqn_to_event_mapper.py +0 -0
  123. {buz-2.15.3 → buz-2.15.5}/src/buz/event/transactional_outbox/outbox_criteria/__init__.py +0 -0
  124. {buz-2.15.3 → buz-2.15.5}/src/buz/event/transactional_outbox/outbox_criteria/deliverable_records_outbox_criteria_factory.py +0 -0
  125. {buz-2.15.3 → buz-2.15.5}/src/buz/event/transactional_outbox/outbox_criteria/outbox_criteria.py +0 -0
  126. {buz-2.15.3 → buz-2.15.5}/src/buz/event/transactional_outbox/outbox_criteria/outbox_criteria_factory.py +0 -0
  127. {buz-2.15.3 → buz-2.15.5}/src/buz/event/transactional_outbox/outbox_criteria/outbox_sorting_criteria.py +0 -0
  128. {buz-2.15.3 → buz-2.15.5}/src/buz/event/transactional_outbox/outbox_record.py +0 -0
  129. {buz-2.15.3 → buz-2.15.5}/src/buz/event/transactional_outbox/outbox_record_finder/__init__.py +0 -0
  130. {buz-2.15.3 → buz-2.15.5}/src/buz/event/transactional_outbox/outbox_record_finder/outbox_record_stream_finder.py +0 -0
  131. {buz-2.15.3 → buz-2.15.5}/src/buz/event/transactional_outbox/outbox_record_finder/polling_outbox_record_stream_finder.py +0 -0
  132. {buz-2.15.3 → buz-2.15.5}/src/buz/event/transactional_outbox/outbox_record_to_event_translator.py +0 -0
  133. {buz-2.15.3 → buz-2.15.5}/src/buz/event/transactional_outbox/outbox_record_validation/__init__.py +0 -0
  134. {buz-2.15.3 → buz-2.15.5}/src/buz/event/transactional_outbox/outbox_record_validation/abstract_outbox_record_validator.py +0 -0
  135. {buz-2.15.3 → buz-2.15.5}/src/buz/event/transactional_outbox/outbox_record_validation/outbox_record_size_not_allowed_exception.py +0 -0
  136. {buz-2.15.3 → buz-2.15.5}/src/buz/event/transactional_outbox/outbox_record_validation/outbox_record_validation_exception.py +0 -0
  137. {buz-2.15.3 → buz-2.15.5}/src/buz/event/transactional_outbox/outbox_record_validation/outbox_record_validator.py +0 -0
  138. {buz-2.15.3 → buz-2.15.5}/src/buz/event/transactional_outbox/outbox_record_validation/size_outbox_record_validator.py +0 -0
  139. {buz-2.15.3 → buz-2.15.5}/src/buz/event/transactional_outbox/outbox_repository.py +0 -0
  140. {buz-2.15.3 → buz-2.15.5}/src/buz/event/transactional_outbox/transactional_outbox_event_bus.py +0 -0
  141. {buz-2.15.3 → buz-2.15.5}/src/buz/event/transactional_outbox/transactional_outbox_worker.py +0 -0
  142. {buz-2.15.3 → buz-2.15.5}/src/buz/event/worker.py +0 -0
  143. {buz-2.15.3 → buz-2.15.5}/src/buz/handler.py +0 -0
  144. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/__init__.py +0 -0
  145. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/domain/exceptions/__init__.py +0 -0
  146. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/domain/exceptions/not_all_partition_assigned_exception.py +0 -0
  147. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/domain/exceptions/not_valid_kafka_message_exception.py +0 -0
  148. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/domain/exceptions/not_valid_partition_number_exception.py +0 -0
  149. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/domain/exceptions/topic_already_created_exception.py +0 -0
  150. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/domain/exceptions/topic_not_found_exception.py +0 -0
  151. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/domain/models/__init__.py +0 -0
  152. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/domain/models/auto_create_topic_configuration.py +0 -0
  153. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/domain/models/consumer_initial_offset_position.py +0 -0
  154. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/domain/models/create_kafka_topic.py +0 -0
  155. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/domain/models/kafka_connection_config.py +0 -0
  156. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/domain/models/kafka_connection_credentials.py +0 -0
  157. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/domain/models/kafka_connection_plain_text_credentials.py +0 -0
  158. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/domain/models/kafka_connection_sasl_credentials.py +0 -0
  159. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/domain/models/kafka_consumer_record.py +0 -0
  160. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/domain/models/kafka_poll_record.py +0 -0
  161. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/domain/models/kafka_supported_compression_type.py +0 -0
  162. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/domain/models/kafka_supported_sasl_mechanisms.py +0 -0
  163. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/domain/models/kafka_supported_security_protocols.py +0 -0
  164. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/domain/services/__init__.py +0 -0
  165. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/domain/services/async_kafka_producer.py +0 -0
  166. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/domain/services/kafka_admin_client.py +0 -0
  167. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/domain/services/kafka_admin_test_client.py +0 -0
  168. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/domain/services/kafka_producer.py +0 -0
  169. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/infrastructure/__init__.py +0 -0
  170. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/infrastructure/aiokafka/__init__.py +0 -0
  171. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/infrastructure/aiokafka/aiokafka_consumer.py +0 -0
  172. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/infrastructure/aiokafka/aiokafka_producer.py +0 -0
  173. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/infrastructure/aiokafka/rebalance/__init__.py +0 -0
  174. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/infrastructure/aiokafka/rebalance/kafka_callback_rebalancer.py +0 -0
  175. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/infrastructure/aiokafka/translators/__init__.py +0 -0
  176. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/infrastructure/aiokafka/translators/consumer_initial_offset_position_translator.py +0 -0
  177. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/infrastructure/cdc/__init__.py +0 -0
  178. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/infrastructure/cdc/cdc_message.py +0 -0
  179. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/infrastructure/cdc/cdc_payload.py +0 -0
  180. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/infrastructure/cdc/cdc_schema.py +0 -0
  181. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/infrastructure/deserializers/__init__.py +0 -0
  182. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/infrastructure/deserializers/byte_deserializer.py +0 -0
  183. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/infrastructure/deserializers/bytes_to_message_deserializer.py +0 -0
  184. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/infrastructure/deserializers/implementations/__init__.py +0 -0
  185. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/infrastructure/deserializers/implementations/cdc/cdc_record_bytes_to_event_deserializer.py +0 -0
  186. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/infrastructure/deserializers/implementations/cdc/not_valid_cdc_message_exception.py +0 -0
  187. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/infrastructure/deserializers/implementations/json_byte_deserializer.py +0 -0
  188. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/infrastructure/deserializers/implementations/json_bytes_to_message_deserializer.py +0 -0
  189. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/infrastructure/interfaces/__init__.py +0 -0
  190. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/infrastructure/interfaces/async_connection_manager.py +0 -0
  191. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/infrastructure/interfaces/connection_manager.py +0 -0
  192. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/infrastructure/kafka_python/__init__.py +0 -0
  193. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/infrastructure/kafka_python/exception/consumer_interrupted_exception.py +0 -0
  194. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/infrastructure/kafka_python/kafka_python_admin_client.py +0 -0
  195. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/infrastructure/kafka_python/kafka_python_admin_test_client.py +0 -0
  196. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/infrastructure/kafka_python/kafka_python_producer.py +0 -0
  197. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/infrastructure/kafka_python/translators/__init__.py +0 -0
  198. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/infrastructure/kafka_python/translators/consumer_initial_offset_position_translator.py +0 -0
  199. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/infrastructure/serializers/byte_serializer.py +0 -0
  200. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/infrastructure/serializers/implementations/cdc_record_bytes_to_event_serializer.py +0 -0
  201. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/infrastructure/serializers/implementations/json_byte_serializer.py +0 -0
  202. {buz-2.15.3 → buz-2.15.5}/src/buz/kafka/infrastructure/serializers/kafka_header_serializer.py +0 -0
  203. {buz-2.15.3 → buz-2.15.5}/src/buz/locator/__init__.py +0 -0
  204. {buz-2.15.3 → buz-2.15.5}/src/buz/locator/handler_fqn_not_found_exception.py +0 -0
  205. {buz-2.15.3 → buz-2.15.5}/src/buz/locator/locator.py +0 -0
  206. {buz-2.15.3 → buz-2.15.5}/src/buz/locator/message_fqn_not_found_exception.py +0 -0
  207. {buz-2.15.3 → buz-2.15.5}/src/buz/locator/pypendency/__init__.py +0 -0
  208. {buz-2.15.3 → buz-2.15.5}/src/buz/locator/pypendency/container_locator.py +0 -0
  209. {buz-2.15.3 → buz-2.15.5}/src/buz/locator/pypendency/container_locator_resolution_configuration.py +0 -0
  210. {buz-2.15.3 → buz-2.15.5}/src/buz/locator/pypendency/handler_not_found_exception.py +0 -0
  211. {buz-2.15.3 → buz-2.15.5}/src/buz/locator/pypendency/handler_not_registered_exception.py +0 -0
  212. {buz-2.15.3 → buz-2.15.5}/src/buz/locator/sync/__init__.py +0 -0
  213. {buz-2.15.3 → buz-2.15.5}/src/buz/locator/sync/handler_already_registered_exception.py +0 -0
  214. {buz-2.15.3 → buz-2.15.5}/src/buz/locator/sync/handler_not_registered_exception.py +0 -0
  215. {buz-2.15.3 → buz-2.15.5}/src/buz/locator/sync/instance_locator.py +0 -0
  216. {buz-2.15.3 → buz-2.15.5}/src/buz/message.py +0 -0
  217. {buz-2.15.3 → buz-2.15.5}/src/buz/middleware/__init__.py +0 -0
  218. {buz-2.15.3 → buz-2.15.5}/src/buz/middleware/middleware.py +0 -0
  219. {buz-2.15.3 → buz-2.15.5}/src/buz/middleware/middleware_chain_builder.py +0 -0
  220. {buz-2.15.3 → buz-2.15.5}/src/buz/py.typed +0 -0
  221. {buz-2.15.3 → buz-2.15.5}/src/buz/query/__init__.py +0 -0
  222. {buz-2.15.3 → buz-2.15.5}/src/buz/query/asynchronous/__init__.py +0 -0
  223. {buz-2.15.3 → buz-2.15.5}/src/buz/query/asynchronous/base_query_handler.py +0 -0
  224. {buz-2.15.3 → buz-2.15.5}/src/buz/query/asynchronous/middleware/__init__.py +0 -0
  225. {buz-2.15.3 → buz-2.15.5}/src/buz/query/asynchronous/middleware/base_handle_middleware.py +0 -0
  226. {buz-2.15.3 → buz-2.15.5}/src/buz/query/asynchronous/middleware/handle_middleware.py +0 -0
  227. {buz-2.15.3 → buz-2.15.5}/src/buz/query/asynchronous/middleware/handle_middleware_chain_resolver.py +0 -0
  228. {buz-2.15.3 → buz-2.15.5}/src/buz/query/asynchronous/query_bus.py +0 -0
  229. {buz-2.15.3 → buz-2.15.5}/src/buz/query/asynchronous/query_handler.py +0 -0
  230. {buz-2.15.3 → buz-2.15.5}/src/buz/query/asynchronous/self_process/__init__.py +0 -0
  231. {buz-2.15.3 → buz-2.15.5}/src/buz/query/asynchronous/self_process/self_process_query_bus.py +0 -0
  232. {buz-2.15.3 → buz-2.15.5}/src/buz/query/more_than_one_query_handler_related_exception.py +0 -0
  233. {buz-2.15.3 → buz-2.15.5}/src/buz/query/query.py +0 -0
  234. {buz-2.15.3 → buz-2.15.5}/src/buz/query/query_response.py +0 -0
  235. {buz-2.15.3 → buz-2.15.5}/src/buz/query/synchronous/__init__.py +0 -0
  236. {buz-2.15.3 → buz-2.15.5}/src/buz/query/synchronous/base_query_handler.py +0 -0
  237. {buz-2.15.3 → buz-2.15.5}/src/buz/query/synchronous/middleware/__init__.py +0 -0
  238. {buz-2.15.3 → buz-2.15.5}/src/buz/query/synchronous/middleware/base_handle_middleware.py +0 -0
  239. {buz-2.15.3 → buz-2.15.5}/src/buz/query/synchronous/middleware/handle_middleware.py +0 -0
  240. {buz-2.15.3 → buz-2.15.5}/src/buz/query/synchronous/middleware/handle_middleware_chain_resolver.py +0 -0
  241. {buz-2.15.3 → buz-2.15.5}/src/buz/query/synchronous/query_bus.py +0 -0
  242. {buz-2.15.3 → buz-2.15.5}/src/buz/query/synchronous/query_handler.py +0 -0
  243. {buz-2.15.3 → buz-2.15.5}/src/buz/query/synchronous/self_process/__init__.py +0 -0
  244. {buz-2.15.3 → buz-2.15.5}/src/buz/query/synchronous/self_process/self_process_query_bus.py +0 -0
  245. {buz-2.15.3 → buz-2.15.5}/src/buz/query/synchronous/synced_async/__init__.py +0 -0
  246. {buz-2.15.3 → buz-2.15.5}/src/buz/query/synchronous/synced_async/synced_async_query_bus.py +0 -0
  247. {buz-2.15.3 → buz-2.15.5}/src/buz/queue/__init__.py +0 -0
  248. {buz-2.15.3 → buz-2.15.5}/src/buz/queue/in_memory/in_memory_multiqueue_repository.py +0 -0
  249. {buz-2.15.3 → buz-2.15.5}/src/buz/queue/in_memory/in_memory_queue_repository.py +0 -0
  250. {buz-2.15.3 → buz-2.15.5}/src/buz/queue/multiqueue_repository.py +0 -0
  251. {buz-2.15.3 → buz-2.15.5}/src/buz/queue/queue_repository.py +0 -0
  252. {buz-2.15.3 → buz-2.15.5}/src/buz/serializer/message_to_bytes_serializer.py +0 -0
  253. {buz-2.15.3 → buz-2.15.5}/src/buz/serializer/message_to_json_bytes_serializer.py +0 -0
  254. {buz-2.15.3 → buz-2.15.5}/src/buz/wrapper/__init__.py +0 -0
  255. {buz-2.15.3 → buz-2.15.5}/src/buz/wrapper/async_to_sync.py +0 -0
  256. {buz-2.15.3 → buz-2.15.5}/src/buz/wrapper/event_loop.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: buz
3
- Version: 2.15.3
3
+ Version: 2.15.5
4
4
  Summary: Buz is a set of light, simple and extensible implementations of event, command and query buses.
5
5
  License: MIT
6
6
  Author: Luis Pintado Lozano
@@ -25,7 +25,6 @@ Provides-Extra: pypendency
25
25
  Requires-Dist: aiohttp (>=3.11.13,<4.0.0)
26
26
  Requires-Dist: aiokafka[lz4] (==0.12.0) ; extra == "aiokafka"
27
27
  Requires-Dist: asgiref (>=3.8.1,<4.0.0) ; extra == "aiokafka"
28
- Requires-Dist: asyncio (>=3.4.3,<4.0.0) ; extra == "aiokafka"
29
28
  Requires-Dist: cachetools (>=5.5.0,<6.0.0)
30
29
  Requires-Dist: dacite (>=1.8.1,<2.0.0)
31
30
  Requires-Dist: kafka-python-ng (==2.2.3)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "buz"
3
- version = "2.15.3"
3
+ version = "2.15.5"
4
4
  description = "Buz is a set of light, simple and extensible implementations of event, command and query buses."
5
5
  readme = "README.md"
6
6
  authors = ["Luis Pintado Lozano <luis.pintado.lozano@gmail.com>", "Gerardo Parra <gprauxiliar@gmail.com>"]
@@ -27,7 +27,6 @@ pympler = {version = "== 1.0.1"}
27
27
  kafka-python-ng= "2.2.3"
28
28
  uuid-utils = "^0.9.0"
29
29
  dacite = "^1.8.1"
30
- asyncio = { version ="^3.4.3", optional = true }
31
30
  aiokafka = {version = "==0.12.0", extras = ["lz4"], optional = true}
32
31
  asgiref = {version = "^3.8.1", optional = true}
33
32
  cachetools = "^5.5.0"
@@ -44,7 +43,7 @@ types-cachetools = "^5.5.0.20240820"
44
43
  [tool.poetry.extras]
45
44
  pypendency = ["pypendency"]
46
45
  kombu = ["kombu"]
47
- aiokafka = ["asyncio", "asgiref", "aiokafka"]
46
+ aiokafka = ["asgiref", "aiokafka"]
48
47
 
49
48
  [build-system]
50
49
  requires = ["poetry-core>=1.0.0"]
@@ -0,0 +1,8 @@
1
+ class MaxConsumerRetryException(Exception):
2
+ def __init__(
3
+ self,
4
+ *,
5
+ event_id: str,
6
+ subscriber_fqn: str,
7
+ ) -> None:
8
+ super().__init__(f"Max retries reached, discarding event {event_id} for subscriber {subscriber_fqn}")
@@ -5,6 +5,7 @@ from typing import Optional, Sequence, cast
5
5
  from buz.event import Event
6
6
  from buz.event.async_subscriber import AsyncSubscriber
7
7
  from buz.event.infrastructure.buz_kafka.consume_strategy.kafka_on_fail_strategy import KafkaOnFailStrategy
8
+ from buz.event.infrastructure.buz_kafka.exceptions.max_consumer_retry_exception import MaxConsumerRetryException
8
9
  from buz.event.infrastructure.buz_kafka.exceptions.retry_exception import ConsumerRetryException
9
10
  from buz.event.infrastructure.buz_kafka.kafka_event_subscriber_executor import KafkaEventSubscriberExecutor
10
11
  from buz.event.middleware.async_consume_middleware import AsyncConsumeMiddleware
@@ -78,8 +79,30 @@ class KafkaEventAsyncSubscriberExecutor(KafkaEventSubscriberExecutor):
78
79
  )
79
80
 
80
81
  async def __perform_consume(self, event: Event, subscriber: AsyncSubscriber) -> None:
81
- should_retry = True
82
82
  number_of_executions = 0
83
+ should_retry = True
84
+
85
+ if self.__consume_retrier is not None:
86
+ should_retry = self.__consume_retrier.should_retry(event, [subscriber])
87
+
88
+ if should_retry is False:
89
+ max_retry_exception = MaxConsumerRetryException(
90
+ event_id=event.id,
91
+ subscriber_fqn=subscriber.fqn(),
92
+ )
93
+
94
+ if self.__on_fail_strategy == KafkaOnFailStrategy.STOP_ON_FAIL:
95
+ raise max_retry_exception
96
+
97
+ self.__logger.warning(
98
+ f"The event {event.id} with the subscriber {subscriber.fqn()} has reach the max number of retries, it will be consumed but not processed"
99
+ )
100
+
101
+ if self.__reject_callback is not None:
102
+ self.__reject_callback.on_reject(event=event, subscribers=[subscriber], exception=max_retry_exception)
103
+
104
+ return
105
+
83
106
  while should_retry is True:
84
107
  try:
85
108
  self.__register_retry(event, subscriber)
@@ -102,7 +125,7 @@ class KafkaEventAsyncSubscriberExecutor(KafkaEventSubscriberExecutor):
102
125
 
103
126
  self.__logger.exception(exception)
104
127
 
105
- if self.__reject_callback:
128
+ if self.__reject_callback is not None:
106
129
  self.__reject_callback.on_reject(event=event, subscribers=[subscriber], exception=exception)
107
130
 
108
131
  if self.__on_fail_strategy == KafkaOnFailStrategy.STOP_ON_FAIL:
@@ -4,6 +4,7 @@ import time
4
4
  from typing import Optional, Sequence, cast
5
5
  from buz.event import Event
6
6
  from buz.event.infrastructure.buz_kafka.consume_strategy.kafka_on_fail_strategy import KafkaOnFailStrategy
7
+ from buz.event.infrastructure.buz_kafka.exceptions.max_consumer_retry_exception import MaxConsumerRetryException
7
8
  from buz.event.infrastructure.buz_kafka.exceptions.retry_exception import ConsumerRetryException
8
9
  from buz.event.infrastructure.buz_kafka.kafka_event_subscriber_executor import KafkaEventSubscriberExecutor
9
10
  from buz.event.middleware.consume_middleware import ConsumeMiddleware
@@ -82,12 +83,34 @@ class KafkaEventSyncSubscriberExecutor(KafkaEventSubscriberExecutor):
82
83
  )
83
84
 
84
85
  def __perform_consume(self, event: Event, subscriber: Subscriber) -> None:
86
+ number_of_executions = 0
85
87
  should_retry = True
86
- execution_number = 0
88
+
89
+ if self.__consume_retrier is not None:
90
+ should_retry = self.__consume_retrier.should_retry(event, [subscriber])
91
+
92
+ if should_retry is False:
93
+ max_retry_exception = MaxConsumerRetryException(
94
+ event_id=event.id,
95
+ subscriber_fqn=subscriber.fqn(),
96
+ )
97
+
98
+ if self.__on_fail_strategy == KafkaOnFailStrategy.STOP_ON_FAIL:
99
+ raise max_retry_exception
100
+
101
+ self.__logger.warning(
102
+ f"The event {event.id} with the subscriber {subscriber.fqn()} has reach the max number of retries, it will be consumed but not processed"
103
+ )
104
+
105
+ if self.__reject_callback is not None:
106
+ self.__reject_callback.on_reject(event=event, subscribers=[subscriber], exception=max_retry_exception)
107
+
108
+ return
109
+
87
110
  while should_retry is True:
88
111
  try:
89
112
  self.__register_retry(event, subscriber)
90
- execution_number += 1
113
+ number_of_executions += 1
91
114
  subscriber.consume(event)
92
115
  self.__clean_retries(event, subscriber)
93
116
  return
@@ -95,7 +118,7 @@ class KafkaEventSyncSubscriberExecutor(KafkaEventSubscriberExecutor):
95
118
  if self.__should_retry(event, subscriber) is True:
96
119
  self.__logger.warning(
97
120
  ConsumerRetryException(
98
- number_of_executions=execution_number,
121
+ number_of_executions=number_of_executions,
99
122
  event_id=event.id,
100
123
  subscriber_fqn=subscriber.fqn(),
101
124
  ),
@@ -106,7 +129,7 @@ class KafkaEventSyncSubscriberExecutor(KafkaEventSubscriberExecutor):
106
129
 
107
130
  self.__logger.exception(exception)
108
131
 
109
- if self.__reject_callback:
132
+ if self.__reject_callback is not None:
110
133
  self.__reject_callback.on_reject(event=event, subscribers=[subscriber], exception=exception)
111
134
 
112
135
  if self.__on_fail_strategy == KafkaOnFailStrategy.STOP_ON_FAIL:
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes