buz 2.15.7__tar.gz → 2.15.8rc1__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.7 → buz-2.15.8rc1}/PKG-INFO +1 -1
  2. {buz-2.15.7 → buz-2.15.8rc1}/pyproject.toml +1 -1
  3. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/infrastructure/buz_kafka/base_buz_aiokafka_async_consumer.py +45 -12
  4. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/infrastructure/aiokafka/aiokafka_consumer.py +1 -4
  5. {buz-2.15.7 → buz-2.15.8rc1}/LICENSE +0 -0
  6. {buz-2.15.7 → buz-2.15.8rc1}/README.md +0 -0
  7. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/__init__.py +0 -0
  8. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/command/__init__.py +0 -0
  9. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/command/asynchronous/__init__.py +0 -0
  10. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/command/asynchronous/base_command_handler.py +0 -0
  11. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/command/asynchronous/command_bus.py +0 -0
  12. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/command/asynchronous/command_handler.py +0 -0
  13. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/command/asynchronous/middleware/__init__.py +0 -0
  14. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/command/asynchronous/middleware/base_handle_middleware.py +0 -0
  15. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/command/asynchronous/middleware/handle_middleware.py +0 -0
  16. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/command/asynchronous/middleware/handle_middleware_chain_resolver.py +0 -0
  17. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/command/asynchronous/self_process/__init__.py +0 -0
  18. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/command/asynchronous/self_process/self_process_command_bus.py +0 -0
  19. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/command/command.py +0 -0
  20. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/command/more_than_one_command_handler_related_exception.py +0 -0
  21. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/command/synchronous/__init__.py +0 -0
  22. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/command/synchronous/base_command_handler.py +0 -0
  23. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/command/synchronous/command_bus.py +0 -0
  24. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/command/synchronous/command_handler.py +0 -0
  25. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/command/synchronous/middleware/__init__.py +0 -0
  26. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/command/synchronous/middleware/base_handle_middleware.py +0 -0
  27. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/command/synchronous/middleware/handle_middleware.py +0 -0
  28. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/command/synchronous/middleware/handle_middleware_chain_resolver.py +0 -0
  29. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/command/synchronous/self_process/__init__.py +0 -0
  30. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/command/synchronous/self_process/self_process_command_bus.py +0 -0
  31. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/command/synchronous/synced_async/__init__.py +0 -0
  32. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/command/synchronous/synced_async/synced_async_command_bus.py +0 -0
  33. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/__init__.py +0 -0
  34. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/async_consumer.py +0 -0
  35. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/async_event_bus.py +0 -0
  36. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/async_subscriber.py +0 -0
  37. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/async_worker.py +0 -0
  38. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/base_async_subscriber.py +0 -0
  39. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/base_subscriber.py +0 -0
  40. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/consumer.py +0 -0
  41. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/dead_letter_queue/__init__.py +0 -0
  42. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/dead_letter_queue/dlq_criteria.py +0 -0
  43. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/dead_letter_queue/dlq_record.py +0 -0
  44. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/dead_letter_queue/dlq_repository.py +0 -0
  45. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/event.py +0 -0
  46. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/event_bus.py +0 -0
  47. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/exceptions/__init__.py +0 -0
  48. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/exceptions/event_not_published_exception.py +0 -0
  49. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/exceptions/event_restore_exception.py +0 -0
  50. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/exceptions/subscribers_not_found_exception.py +0 -0
  51. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/exceptions/term_signal_interruption_exception.py +0 -0
  52. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/exceptions/worker_execution_exception.py +0 -0
  53. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/infrastructure/__init__.py +0 -0
  54. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/infrastructure/buz_kafka/__init__.py +0 -0
  55. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/infrastructure/buz_kafka/async_buz_kafka_event_bus.py +0 -0
  56. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/infrastructure/buz_kafka/buz_aiokafka_async_consumer.py +0 -0
  57. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/infrastructure/buz_kafka/buz_aiokafka_multi_threaded_consumer.py +0 -0
  58. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/infrastructure/buz_kafka/buz_kafka_event_bus.py +0 -0
  59. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/infrastructure/buz_kafka/consume_strategy/__init__.py +0 -0
  60. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/infrastructure/buz_kafka/consume_strategy/consume_strategy.py +0 -0
  61. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/infrastructure/buz_kafka/consume_strategy/kafka_on_fail_strategy.py +0 -0
  62. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/infrastructure/buz_kafka/consume_strategy/topic_and_subscription_group_per_subscriber_kafka_consumer_strategy.py +0 -0
  63. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/infrastructure/buz_kafka/exceptions/__init__.py +0 -0
  64. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/infrastructure/buz_kafka/exceptions/kafka_event_bus_config_not_valid_exception.py +0 -0
  65. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/infrastructure/buz_kafka/exceptions/max_consumer_retry_exception.py +0 -0
  66. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/infrastructure/buz_kafka/exceptions/retry_exception.py +0 -0
  67. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/infrastructure/buz_kafka/kafka_event_async_subscriber_executor.py +0 -0
  68. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/infrastructure/buz_kafka/kafka_event_subscriber_executor.py +0 -0
  69. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/infrastructure/buz_kafka/kafka_event_sync_subscriber_executor.py +0 -0
  70. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/infrastructure/buz_kafka/publish_strategy/__init__.py +0 -0
  71. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/infrastructure/buz_kafka/publish_strategy/publish_strategy.py +0 -0
  72. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/infrastructure/buz_kafka/publish_strategy/topic_per_event_kafka_publish_strategy.py +0 -0
  73. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/infrastructure/kombu/__init__.py +0 -0
  74. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/infrastructure/kombu/allowed_kombu_serializer.py +0 -0
  75. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/infrastructure/kombu/consume_strategy/__init__.py +0 -0
  76. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/infrastructure/kombu/consume_strategy/consume_strategy.py +0 -0
  77. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/infrastructure/kombu/consume_strategy/queue_per_subscriber_consume_strategy.py +0 -0
  78. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/infrastructure/kombu/kombu_consumer.py +0 -0
  79. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/infrastructure/kombu/kombu_event_bus.py +0 -0
  80. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/infrastructure/kombu/publish_strategy/__init__.py +0 -0
  81. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/infrastructure/kombu/publish_strategy/fanout_exchange_per_event_publish_strategy.py +0 -0
  82. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/infrastructure/kombu/publish_strategy/publish_strategy.py +0 -0
  83. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/infrastructure/kombu/retry_strategy/__init__.py +0 -0
  84. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/infrastructure/kombu/retry_strategy/publish_retry_policy.py +0 -0
  85. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/infrastructure/kombu/retry_strategy/simple_publish_retry_policy.py +0 -0
  86. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/infrastructure/models/consuming_task.py +0 -0
  87. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/infrastructure/queue/__init__.py +0 -0
  88. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/meta_base_subscriber.py +0 -0
  89. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/meta_subscriber.py +0 -0
  90. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/middleware/__init__.py +0 -0
  91. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/middleware/async_consume_middleware.py +0 -0
  92. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/middleware/async_consume_middleware_chain_resolver.py +0 -0
  93. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/middleware/async_publish_middleware.py +0 -0
  94. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/middleware/async_publish_middleware_chain_resolver.py +0 -0
  95. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/middleware/base_async_consume_middleware.py +0 -0
  96. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/middleware/base_consume_middleware.py +0 -0
  97. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/middleware/base_publish_middleware.py +0 -0
  98. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/middleware/consume_middleware.py +0 -0
  99. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/middleware/consume_middleware_chain_resolver.py +0 -0
  100. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/middleware/exceptions/__init__.py +0 -0
  101. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/middleware/exceptions/event_already_in_progress_exception.py +0 -0
  102. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/middleware/publish_middleware.py +0 -0
  103. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/middleware/publish_middleware_chain_resolver.py +0 -0
  104. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/strategies/__init__.py +0 -0
  105. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/strategies/execution_strategy/__init__.py +0 -0
  106. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/strategies/execution_strategy/async_execution_strategy.py +0 -0
  107. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/strategies/execution_strategy/async_self_process_execution_strategy.py +0 -0
  108. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/strategies/execution_strategy/cyclic_iterator_execution_strategy.py +0 -0
  109. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/strategies/execution_strategy/execution_strategy.py +0 -0
  110. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/strategies/execution_strategy/self_process_execution_strategy.py +0 -0
  111. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/strategies/retry/__init__.py +0 -0
  112. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/strategies/retry/consume_retrier.py +0 -0
  113. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/strategies/retry/consumed_event_retry.py +0 -0
  114. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/strategies/retry/consumed_event_retry_repository.py +0 -0
  115. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/strategies/retry/max_retries_consume_retrier.py +0 -0
  116. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/strategies/retry/max_retries_negative_exception.py +0 -0
  117. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/strategies/retry/reject_callback.py +0 -0
  118. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/subscriber.py +0 -0
  119. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/sync/__init__.py +0 -0
  120. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/sync/sync_event_bus.py +0 -0
  121. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/transactional_outbox/__init__.py +0 -0
  122. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/transactional_outbox/event_to_outbox_record_translator.py +0 -0
  123. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/transactional_outbox/fqn_to_event_mapper.py +0 -0
  124. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/transactional_outbox/outbox_criteria/__init__.py +0 -0
  125. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/transactional_outbox/outbox_criteria/deliverable_records_outbox_criteria_factory.py +0 -0
  126. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/transactional_outbox/outbox_criteria/outbox_criteria.py +0 -0
  127. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/transactional_outbox/outbox_criteria/outbox_criteria_factory.py +0 -0
  128. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/transactional_outbox/outbox_criteria/outbox_sorting_criteria.py +0 -0
  129. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/transactional_outbox/outbox_record.py +0 -0
  130. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/transactional_outbox/outbox_record_finder/__init__.py +0 -0
  131. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/transactional_outbox/outbox_record_finder/outbox_record_stream_finder.py +0 -0
  132. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/transactional_outbox/outbox_record_finder/polling_outbox_record_stream_finder.py +0 -0
  133. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/transactional_outbox/outbox_record_to_event_translator.py +0 -0
  134. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/transactional_outbox/outbox_record_validation/__init__.py +0 -0
  135. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/transactional_outbox/outbox_record_validation/abstract_outbox_record_validator.py +0 -0
  136. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/transactional_outbox/outbox_record_validation/outbox_record_size_not_allowed_exception.py +0 -0
  137. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/transactional_outbox/outbox_record_validation/outbox_record_validation_exception.py +0 -0
  138. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/transactional_outbox/outbox_record_validation/outbox_record_validator.py +0 -0
  139. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/transactional_outbox/outbox_record_validation/size_outbox_record_validator.py +0 -0
  140. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/transactional_outbox/outbox_repository.py +0 -0
  141. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/transactional_outbox/transactional_outbox_event_bus.py +0 -0
  142. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/transactional_outbox/transactional_outbox_worker.py +0 -0
  143. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/event/worker.py +0 -0
  144. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/handler.py +0 -0
  145. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/__init__.py +0 -0
  146. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/domain/exceptions/__init__.py +0 -0
  147. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/domain/exceptions/not_all_partition_assigned_exception.py +0 -0
  148. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/domain/exceptions/not_valid_kafka_message_exception.py +0 -0
  149. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/domain/exceptions/not_valid_partition_number_exception.py +0 -0
  150. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/domain/exceptions/topic_already_created_exception.py +0 -0
  151. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/domain/exceptions/topic_not_found_exception.py +0 -0
  152. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/domain/models/__init__.py +0 -0
  153. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/domain/models/auto_create_topic_configuration.py +0 -0
  154. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/domain/models/consumer_initial_offset_position.py +0 -0
  155. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/domain/models/create_kafka_topic.py +0 -0
  156. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/domain/models/kafka_connection_config.py +0 -0
  157. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/domain/models/kafka_connection_credentials.py +0 -0
  158. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/domain/models/kafka_connection_plain_text_credentials.py +0 -0
  159. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/domain/models/kafka_connection_sasl_credentials.py +0 -0
  160. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/domain/models/kafka_consumer_record.py +0 -0
  161. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/domain/models/kafka_poll_record.py +0 -0
  162. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/domain/models/kafka_supported_compression_type.py +0 -0
  163. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/domain/models/kafka_supported_sasl_mechanisms.py +0 -0
  164. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/domain/models/kafka_supported_security_protocols.py +0 -0
  165. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/domain/services/__init__.py +0 -0
  166. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/domain/services/async_kafka_producer.py +0 -0
  167. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/domain/services/kafka_admin_client.py +0 -0
  168. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/domain/services/kafka_admin_test_client.py +0 -0
  169. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/domain/services/kafka_producer.py +0 -0
  170. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/infrastructure/__init__.py +0 -0
  171. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/infrastructure/aiokafka/__init__.py +0 -0
  172. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/infrastructure/aiokafka/aiokafka_producer.py +0 -0
  173. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/infrastructure/aiokafka/rebalance/__init__.py +0 -0
  174. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/infrastructure/aiokafka/rebalance/kafka_callback_rebalancer.py +0 -0
  175. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/infrastructure/aiokafka/translators/__init__.py +0 -0
  176. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/infrastructure/aiokafka/translators/consumer_initial_offset_position_translator.py +0 -0
  177. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/infrastructure/cdc/__init__.py +0 -0
  178. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/infrastructure/cdc/cdc_message.py +0 -0
  179. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/infrastructure/cdc/cdc_payload.py +0 -0
  180. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/infrastructure/cdc/cdc_schema.py +0 -0
  181. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/infrastructure/deserializers/__init__.py +0 -0
  182. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/infrastructure/deserializers/byte_deserializer.py +0 -0
  183. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/infrastructure/deserializers/bytes_to_message_deserializer.py +0 -0
  184. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/infrastructure/deserializers/implementations/__init__.py +0 -0
  185. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/infrastructure/deserializers/implementations/cdc/cdc_record_bytes_to_event_deserializer.py +0 -0
  186. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/infrastructure/deserializers/implementations/cdc/not_valid_cdc_message_exception.py +0 -0
  187. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/infrastructure/deserializers/implementations/json_byte_deserializer.py +0 -0
  188. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/infrastructure/deserializers/implementations/json_bytes_to_message_deserializer.py +0 -0
  189. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/infrastructure/interfaces/__init__.py +0 -0
  190. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/infrastructure/interfaces/async_connection_manager.py +0 -0
  191. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/infrastructure/interfaces/connection_manager.py +0 -0
  192. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/infrastructure/kafka_python/__init__.py +0 -0
  193. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/infrastructure/kafka_python/exception/consumer_interrupted_exception.py +0 -0
  194. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/infrastructure/kafka_python/kafka_python_admin_client.py +0 -0
  195. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/infrastructure/kafka_python/kafka_python_admin_test_client.py +0 -0
  196. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/infrastructure/kafka_python/kafka_python_producer.py +0 -0
  197. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/infrastructure/kafka_python/translators/__init__.py +0 -0
  198. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/infrastructure/kafka_python/translators/consumer_initial_offset_position_translator.py +0 -0
  199. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/infrastructure/serializers/byte_serializer.py +0 -0
  200. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/infrastructure/serializers/implementations/cdc_record_bytes_to_event_serializer.py +0 -0
  201. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/infrastructure/serializers/implementations/json_byte_serializer.py +0 -0
  202. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/kafka/infrastructure/serializers/kafka_header_serializer.py +0 -0
  203. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/locator/__init__.py +0 -0
  204. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/locator/handler_fqn_not_found_exception.py +0 -0
  205. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/locator/locator.py +0 -0
  206. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/locator/message_fqn_not_found_exception.py +0 -0
  207. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/locator/pypendency/__init__.py +0 -0
  208. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/locator/pypendency/container_locator.py +0 -0
  209. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/locator/pypendency/container_locator_resolution_configuration.py +0 -0
  210. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/locator/pypendency/handler_not_found_exception.py +0 -0
  211. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/locator/pypendency/handler_not_registered_exception.py +0 -0
  212. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/locator/sync/__init__.py +0 -0
  213. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/locator/sync/handler_already_registered_exception.py +0 -0
  214. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/locator/sync/handler_not_registered_exception.py +0 -0
  215. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/locator/sync/instance_locator.py +0 -0
  216. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/message.py +0 -0
  217. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/middleware/__init__.py +0 -0
  218. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/middleware/middleware.py +0 -0
  219. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/middleware/middleware_chain_builder.py +0 -0
  220. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/py.typed +0 -0
  221. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/query/__init__.py +0 -0
  222. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/query/asynchronous/__init__.py +0 -0
  223. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/query/asynchronous/base_query_handler.py +0 -0
  224. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/query/asynchronous/middleware/__init__.py +0 -0
  225. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/query/asynchronous/middleware/base_handle_middleware.py +0 -0
  226. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/query/asynchronous/middleware/handle_middleware.py +0 -0
  227. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/query/asynchronous/middleware/handle_middleware_chain_resolver.py +0 -0
  228. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/query/asynchronous/query_bus.py +0 -0
  229. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/query/asynchronous/query_handler.py +0 -0
  230. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/query/asynchronous/self_process/__init__.py +0 -0
  231. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/query/asynchronous/self_process/self_process_query_bus.py +0 -0
  232. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/query/more_than_one_query_handler_related_exception.py +0 -0
  233. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/query/query.py +0 -0
  234. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/query/query_response.py +0 -0
  235. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/query/synchronous/__init__.py +0 -0
  236. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/query/synchronous/base_query_handler.py +0 -0
  237. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/query/synchronous/middleware/__init__.py +0 -0
  238. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/query/synchronous/middleware/base_handle_middleware.py +0 -0
  239. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/query/synchronous/middleware/handle_middleware.py +0 -0
  240. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/query/synchronous/middleware/handle_middleware_chain_resolver.py +0 -0
  241. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/query/synchronous/query_bus.py +0 -0
  242. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/query/synchronous/query_handler.py +0 -0
  243. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/query/synchronous/self_process/__init__.py +0 -0
  244. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/query/synchronous/self_process/self_process_query_bus.py +0 -0
  245. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/query/synchronous/synced_async/__init__.py +0 -0
  246. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/query/synchronous/synced_async/synced_async_query_bus.py +0 -0
  247. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/queue/__init__.py +0 -0
  248. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/queue/in_memory/in_memory_multiqueue_repository.py +0 -0
  249. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/queue/in_memory/in_memory_queue_repository.py +0 -0
  250. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/queue/multiqueue_repository.py +0 -0
  251. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/queue/queue_repository.py +0 -0
  252. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/serializer/message_to_bytes_serializer.py +0 -0
  253. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/serializer/message_to_json_bytes_serializer.py +0 -0
  254. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/wrapper/__init__.py +0 -0
  255. {buz-2.15.7 → buz-2.15.8rc1}/src/buz/wrapper/async_to_sync.py +0 -0
  256. {buz-2.15.7 → buz-2.15.8rc1}/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.7
3
+ Version: 2.15.8rc1
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
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "buz"
3
- version = "2.15.7"
3
+ version = "2.15.8-rc1"
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>"]
@@ -1,3 +1,4 @@
1
+ from collections import defaultdict
1
2
  import json
2
3
  import traceback
3
4
  from abc import abstractmethod
@@ -39,6 +40,7 @@ class BaseBuzAIOKafkaAsyncConsumer(AsyncConsumer):
39
40
  __SECONDS_BETWEEN_EXECUTIONS_IF_THERE_ARE_NO_TASKS_IN_THE_QUEUE = 1
40
41
  __SECONDS_BETWEEN_POLLS_IF_THERE_ARE_TASKS_IN_THE_QUEUE = 1
41
42
  __SECONDS_BETWEEN_POLLS_IF_THERE_ARE_NO_NEW_TASKS = 1
43
+ __SECONDS_TO_WAIT_BETWEEN_REBALANCING_IN_PROGRESS = 0.1
42
44
  __MAX_NUMBER_OF_CONCURRENT_POLLING_TASKS = 20
43
45
 
44
46
  def __init__(
@@ -103,8 +105,9 @@ class BaseBuzAIOKafkaAsyncConsumer(AsyncConsumer):
103
105
  )
104
106
  self.__wait_for_connection_to_cluster_ms: Optional[int] = wait_for_connection_to_cluster_ms
105
107
  self.__polling_tasks_semaphore = Semaphore(self.__max_number_of_concurrent_polling_tasks)
106
- self.__task_execution_mutex = Lock()
108
+ self.__consumer_and_partition_mutex: dict[str, Lock] = defaultdict(Lock)
107
109
  self.__is_worked_initialized = False
110
+ self.__number_of_rebalancing_processes_in_progress: int = 0
108
111
 
109
112
  async def configure_http_check_server(self, health_check_port: int) -> web.TCPSite:
110
113
  self._logger.info(f"Starting health check server on port {health_check_port}")
@@ -303,29 +306,59 @@ class BaseBuzAIOKafkaAsyncConsumer(AsyncConsumer):
303
306
  last_consumer, _ = next(consumer_queues_cyclic_iterator)
304
307
 
305
308
  while not self.__should_stop.is_set():
309
+ if self.is_rebalancing_in_progress():
310
+ self._logger.info("Waiting for rebalancing")
311
+ await sleep(self.__SECONDS_TO_WAIT_BETWEEN_REBALANCING_IN_PROGRESS)
312
+ continue
313
+
306
314
  if await self.__all_queues_are_empty():
307
315
  await sleep(self.__seconds_between_executions_if_there_are_no_tasks_in_the_queue)
308
316
  continue
309
317
 
310
- async with self.__task_execution_mutex:
311
- consumer: Optional[AIOKafkaConsumer] = None
318
+ consumer: Optional[AIOKafkaConsumer] = None
319
+
320
+ while consumer != last_consumer:
321
+ consumer, queue = next(consumer_queues_cyclic_iterator)
322
+ kafka_poll_record = queue.pop()
323
+
324
+ if kafka_poll_record is not None:
325
+ consuming_task = ConsumingTask(consumer, kafka_poll_record)
326
+ async with self.__get_partition_mutex(
327
+ consumer_fqn=consuming_task.consumer.get_consumer_group(),
328
+ partition=kafka_poll_record.partition,
329
+ ):
330
+ yield consuming_task
312
331
 
313
- while consumer != last_consumer:
314
- consumer, queue = next(consumer_queues_cyclic_iterator)
315
- kafka_poll_record = queue.pop()
332
+ last_consumer = consumer
333
+ break
316
334
 
317
- if kafka_poll_record is not None:
318
- yield ConsumingTask(consumer, kafka_poll_record)
319
- last_consumer = consumer
320
- break
335
+ def __get_partition_mutex(self, consumer_fqn: str, partition: int) -> Lock:
336
+ mutex_key = f"consumer_{consumer_fqn}_partition_{partition}"
337
+ return self.__consumer_and_partition_mutex[mutex_key]
321
338
 
322
339
  async def __all_queues_are_empty(self) -> bool:
323
340
  return all([queue.is_totally_empty() for queue in self.__queue_per_consumer_mapper.values()])
324
341
 
325
342
  async def __on_partition_revoked(self, consumer: AIOKafkaConsumer, topics_partitions: set[TopicPartition]) -> None:
326
- async with self.__task_execution_mutex:
327
- for topic_partition in topics_partitions:
343
+ self._logger.info(f"rebalancing in progress, revoking partitions {topics_partitions}")
344
+
345
+ self.increase_number_of_rebalancing_in_progress()
346
+ for topic_partition in topics_partitions:
347
+ async with self.__get_partition_mutex(
348
+ consumer_fqn=consumer.get_consumer_group(),
349
+ partition=topic_partition.partition,
350
+ ):
328
351
  self.__queue_per_consumer_mapper[consumer].clear(topic_partition)
352
+ self.decrease_number_of_rebalancing_in_progress()
353
+
354
+ def increase_number_of_rebalancing_in_progress(self) -> None:
355
+ self.__number_of_rebalancing_processes_in_progress += 1
356
+
357
+ def decrease_number_of_rebalancing_in_progress(self) -> None:
358
+ self.__number_of_rebalancing_processes_in_progress -= 1
359
+
360
+ def is_rebalancing_in_progress(self) -> bool:
361
+ return self.__number_of_rebalancing_processes_in_progress > 0
329
362
 
330
363
  def request_stop(self) -> None:
331
364
  self.__should_stop.set()
@@ -163,10 +163,7 @@ class AIOKafkaConsumer:
163
163
  self,
164
164
  topics_partitions: set[TopicPartition],
165
165
  ) -> None:
166
- # It could happen that the new partition assigned it was a previous one processed by this consumer, so we need to seek to the last committed offset
167
- self.__consumer.pause(*topics_partitions)
168
- await self.__consumer.seek_to_committed(*topics_partitions)
169
- self.__consumer.resume(*topics_partitions)
166
+ return
170
167
 
171
168
  async def __on_partitions_revoked(
172
169
  self,
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