Skip to content

v0.6.0

Compare
Choose a tag to compare
@github-actions github-actions released this 28 Mar 16:19
· 12 commits to 0.6.x since this release
49a8776

Changelog

minos-microservice-aggregate

  • Replace dependency-injector's injection classes by the ones provided by the minos.common.injections module.
  • Be compatible with latest minos.common.Config API.

minos-microservice-common

  • Add Config with support for config versioning.
  • Add ConfigV1 as the class that supports the V1 config file.
  • Add ConfigV2 as the class that supports the V1 config file.
  • Deprecate MinosConfig in favor of Config.
  • Add get_internal_modules function.
  • Add Injectable decorator to provide a way to set a class as injectable.
  • Add InjectableMixin class that provides the necessary methods to be injectable.
  • Add Inject decorator to provide a way to inject variables on functions based on types.
  • Add LockPool base class as the base class for lock pools.
  • Add Object base class with the purpose to avoid issues related with multi-inheritance and mixins.
  • Add Port base class as the base class for ports.
  • Add CircuitBreakerMixin class to provide circuit breaker functionalities.
  • Add SetupMixin class as a replacement of the MinosSetup class.

minos-microservice-cqrs

  • Replace dependency-injector's injection classes by the ones provided by the minos.common.injections module.
  • Be compatible with latest minos.common.Config API.

minos-microservice-networks

  • Add BrokerPort class and deprecate BrokerHandlerService.
  • Add BrokerPublisherBuilder to ease the building of BrokerPublisher instances.
  • Add FilteredBrokerSubscriber implemented as a Chain-of-Responsibility Design Pattern to be able to filter BrokerMessage instances during subscription.
  • Add BrokerSubscriberValidator and BrokerSubscriberDuplicateValidator base classes and the InMemoryBrokerSubscriberDuplicateValidator and PostgreSqlBrokerSubscriberDuplicateValidator implementations.
  • Rename EnrouteAnalyzer as EnrouteCollector.
  • Rename EnrouteBuilder as EnrouteFactory.
  • Add HttpEnrouteDecorator.
  • Remove KongDiscoveryClient class (there are plans to re-include it as an external plugin in the future).
  • Add HttpConnector as the base class that connects to the http server.
  • Add HttpAdapter as the class that coordinates HttpRouter instances.
  • Add HttpPort class and deprecate RestService.
  • Add HttpRequest, HttpResponse and HttpResponseException as request/response wrappers of the http server.
  • Add Router, HttpRouter, RestHttpRouter, BrokerRouter and PeriodicRouter as the classes that route requests to the corresponding services' handling functions
  • Add PeriodicPort class and deprecate PeriodicTaskSchedulerService.
  • Add CronTab class to support "@reboot" pattern.
  • Add OpenAPIService and AsynAPIService classes as the services that provide openapi and asynciapi specifications of the microservice.
  • Add SystemService as the service that implements System Health checker.
  • Replace dependency-injector's injection classes by the ones provided by the minos.common.injections module.
  • Be compatible with latest minos.common.Config API.

minos-microservice-saga

  • Replace dependency-injector's injection classes by the ones provided by the minos.common.injections module.
  • Be compatible with latest minos.common.Config API.

minos-broker-kafka

  • Add KafkaCircuitBreakerMixin to integrate minos.common.CircuitBreakerMixin into the KafkaBrokerPublisher and KafkaBrokerSubscriber classes to be tolerant to connection failures to kafka.
  • Add KafkaBrokerPublisherBuilder and KafkaBrokerBuilderMixin classes to ease the building process.

minos-broker-rabbitmq

  • Add RabbitMQBrokerPublisher as the implementation of the rabbitmq publisher.
  • Add RabbitMQBrokerSubscriber as the implementation of the rabbitmq subscriber.
  • Add RabbitMQBrokerPublisherBuilder, RabbitMQBrokerSubscriberBuilder and RabbitMQBrokerBuilderMixin classes to ease the building process.

minos-discovery-minos

  • Integrate minos.common.CircuitBreakerMixin into the MinosDiscoveryClient to be tolerant to connection failures to minos-discovery.

minos-http-aiohttp

  • Add AioHttpConnector as the implementation of the aiohttp server.
  • Add AioHttpRequest, AioHttpResponse and AioHttpResponseException classes as the request/response wrappers for aiohttp.

minos-router-graphql

  • Add GraphQLSchemaBuilder to build the graphql's schema.
  • Add GraphQlHandler class to handle graphql requests.
  • Add GraphQlHttpRouter class to route http request to graphql.
  • Add GraphQlEnroute, GraphQlEnrouteDecorator, GraphQlCommandEnrouteDecorator and GraphQlQueryEnrouteDecorator decorators.

Update Guide

From 0.5.x

  • Add @Injectable decorator to classes that injections:
from minos.common import Injectable


@Injectable("THE_INJECTION_NAME")
class MyInjectableClass:
  ...
  • Add minos-http-aiohttp package:
poetry add minos-http-aiohttp@^0.6
  • Add HttpConnector instance to service.injections section of config.yml file:
...
service:
  injections:
    http_connector: minos.plugins.aiohttp.AioHttpConnector
    ...
  ...
...
  • Add routers section to config.yml file:
...
routers:
  - minos.networks.BrokerRouter
  - minos.networks.PeriodicRouter
  - minos.networks.RestHttpRouter
...
  • Update minos.common.Config usages according to the new provided API:
    • Most common issues come from calls like config.query_repository._asdict(), that must be transformed to config.get_database_by_name("query")