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")