Changelog

0.1.0 (Not released yet)

  • Added
    • Services
      • Producer
        • All producer now work with the new BasePositioning class

      • Consumer
        • All consumer now work with the new BasePositioning class

      • Coordinator
        • Client
          • New concept BaseClient, user for initialize Consumer / Producer / StoreManager

          • New class KafkaClient, used for initialize KafkaConsumer / KafkaProducer / KafkaStoreManager, (Primitive Obsession refactor)

        • Transaction
          • New concept BaseTransactionManager & BaseTransactionContext

          • New class KafkaTransactionManager & KafkaTransactionContext

        • Async Coordinator
          • New async coordinator, used by stores for make some asynchronous task

    • Stores
      • New concept BaseStoreManager (Manage local & global store)

      • Persistency
        • Created BasePersistency

        • Added MemoryPersistency

        • Added ShelvePersistency

        • Added RockDBPersistency

    • Models
      • Record
        • In BaseRecord two serialization abstract method (to_dict / from_dict) | new method base_dict (return base class in dict)

        • In BaseEvent two serialization abstract method (to_dict / from_dict)

        • In BaseCommand two serialization abstract method (to_dict / from_dict) | new method base_dict (return base class in dict)

        • In BaseResult two serialization abstract method (to_dict / from_dict) | new method base_dict (return base class in dict)

      • Store
        • In StoreRecord two serialization method (to_dict / from_dict)

      • Structure
        • New concept BasePositioning (manage topic partition offset)

        • New structs KafkaPositioning (replace TopicPartition namedtuple)

        • New concept StoreRecordType used by StoreManager (new StoreRecord operation_type ‘set/del’) (Primitive Obsession refactor)

    • General
      • More documentations

      • More tests

  • Changed
    • Models
      • Renamed events package to records

      • Changed (BaseRecord, BaseEvent, BaseCommand, BaseResult, StoreRecord) serialization logic

      • Store
        • Changed ‘ctype’ variable in BaseStoreRecord to ‘operation_type’ (type : StoreRecordType)

        • Moved BaseStoreRecord in models.records

        • Moved StoreRecords in models.records.store

        • Moved BaseStoreRecordHandler in models.handler

        • Moved StoreRecordHandler in models.handlers.store

    • Services
      • Producer
        • BaseProducer inherit form ABCMeta

        • All producer work with the new BasePositioning class

        • Changed KafkaProducer constructor params (removed name, bootstrap_servers)

        • Renamed KafkaProducer ‘send_and_await’ method to ‘send_and_wait’

        • Renamed KafkaProducer ‘send_and_await’ method return (BasePositioning)

        • Changed KafkaProducer ‘send’ method return (Awaitable)

      • Consumer
        • BaseConsumer inherit form ABCMeta

        • All consumer work with the new BasePositioning class

        • Changed KafkaConsumer constructor params (removed name, bootstrap_servers)

        • Renamed KafkaConsumer ‘listen_event’ method to ‘listen_records’

      • Serializer
        • AvroSerializer handler_class is now optional in register_class function

    • Stores
      • Manager
        • Renamed BaseStoreBuilder to BaseStoreManager

        • BaseStoreManager inherit form ABCMeta

        • Renamed StoreBuilder to KafkaStoreManager

        • StoreManager constructor params (removed current_instance, nb_replica, bootstrap_server, cluster_metadata, cluster_admin)

        • Full refactored LocalStore (Now is abstract class using Persistency layer)

        • Full refactored GlobalStore (Now is abstract class using Persistency layer)

        • Local & Global store sends StoreRecords in event bus, after received ack, stores create new asynchronous task for save records

      • Local & global
        • BaseStore inherit form ABCMeta

        • Renamed global store package (globall -> global_store)

        • Renamed local store package (local -> local_store)

    • General
      • Update aiokafka version 0.5.1 -> 0.5.2

  • Removed
    • Models
      • Removed store_record folder (moved in records / handlers)

      • Removed StoreRecordBase

    • Store
      • Removed old Memory LocalStore & GlobalStore

      • Removed Store Metadata

    • General
      • Removed all privates variables from documentation

      • Removed all privates methods from documentation

  • Fixed
    • Some StoreManager bug

    • Store initialization failure

    • Waiter project example

    • Cash-register project example

    • KafkaConsumer crash (without group_id and try to seek committed)

    • KafkaConsumer & KafkaStoreManager bug (Fail to init store if topic / partition have only one record)

    • Tests (new concept adaptation)

    • Possible circular import

0.0.2 (2019-06-05)

  • Added
    • Handler (events / commands / results)

    • Local & global store (only memory)

    • StoreBuilder

    • Statefulset assignors

    • Key partitioner

    • Statefulset partitioner

    • Tests

  • Changed:
    • Docker-compose in example/dev_env (1 broker -> 3 broker)

  • Fixed
    • Some consumer bug

    • Some producer bug

  • Refactored
    • Exceptions (more explicit)

0.0.1 (2019-04-30)

  • Initial release

  • Added
    • Kafka producer / consumers

    • Avro serializer

    • Schemas model (events / commands / results)

    • Some example (coffee_bar)

    • Docker-compose in example/dev_env (for testing)