🐍 Minos is a framework which helps you create reactive microservices in Python
dependency-injector
's injection classes by the ones provided by the minos.common.injections
module.minos.common.Config
API.Config
with support for config versioning.ConfigV1
as the class that supports the V1 config file.ConfigV2
as the class that supports the V1 config file.MinosConfig
in favor of Config
.get_internal_modules
function.Injectable
decorator to provide a way to set a class as injectable.InjectableMixin
class that provides the necessary methods to be injectable.Inject
decorator to provide a way to inject variables on functions based on types.LockPool
base class as the base class for lock pools.Object
base class with the purpose to avoid issues related with multi-inheritance and mixins.Port
base class as the base class for ports.CircuitBreakerMixin
class to provide circuit breaker functionalities.SetupMixin
class as a replacement of the MinosSetup
class.dependency-injector
's injection classes by the ones provided by the minos.common.injections
module.minos.common.Config
API.BrokerPort
class and deprecate BrokerHandlerService
.BrokerPublisherBuilder
to ease the building of BrokerPublisher
instances.FilteredBrokerSubscriber
implemented as a Chain-of-Responsibility Design Pattern to be able to filter BrokerMessage
instances during subscription.BrokerSubscriberValidator
and BrokerSubscriberDuplicateValidator
base classes and the InMemoryBrokerSubscriberDuplicateValidator
and PostgreSqlBrokerSubscriberDuplicateValidator
implementations.EnrouteAnalyzer
as EnrouteCollector
.EnrouteBuilder
as EnrouteFactory
.HttpEnrouteDecorator
.KongDiscoveryClient
class (there are plans to re-include it as an external plugin in the future).HttpConnector
as the base class that connects to the http
server.HttpAdapter
as the class that coordinates HttpRouter
instances.HttpPort
class and deprecate RestService
.HttpRequest
, HttpResponse
and HttpResponseException
as request/response wrappers of the http
server.Router
, HttpRouter
, RestHttpRouter
, BrokerRouter
and PeriodicRouter
as the classes that route requests to the corresponding services' handling functionsPeriodicPort
class and deprecate PeriodicTaskSchedulerService
.CronTab
class to support "@reboot"
pattern.OpenAPIService
and AsynAPIService
classes as the services that provide openapi
and asynciapi
specifications of the microservice.SystemService
as the service that implements System Health checker.dependency-injector
's injection classes by the ones provided by the minos.common.injections
module.minos.common.Config
API.dependency-injector
's injection classes by the ones provided by the minos.common.injections
module.minos.common.Config
API.KafkaCircuitBreakerMixin
to integrate minos.common.CircuitBreakerMixin
into the KafkaBrokerPublisher
and KafkaBrokerSubscriber
classes to be tolerant to connection failures to kafka
.KafkaBrokerPublisherBuilder
and KafkaBrokerBuilderMixin
classes to ease the building process.RabbitMQBrokerPublisher
as the implementation of the rabbitmq
publisher.RabbitMQBrokerSubscriber
as the implementation of the rabbitmq
subscriber.RabbitMQBrokerPublisherBuilder
, RabbitMQBrokerSubscriberBuilder
and RabbitMQBrokerBuilderMixin
classes to ease the building process.minos.common.CircuitBreakerMixin
into the MinosDiscoveryClient
to be tolerant to connection failures to minos-discovery
.AioHttpConnector
as the implementation of the aiohttp
server.AioHttpRequest
, AioHttpResponse
and AioHttpResponseException
classes as the request/response wrappers for aiohttp
.GraphQLSchemaBuilder
to build the graphql
's schema.GraphQlHandler
class to handle graphql
requests.GraphQlHttpRouter
class to route http
request to graphql
.GraphQlEnroute
, GraphQlEnrouteDecorator
, GraphQlCommandEnrouteDecorator
and GraphQlQueryEnrouteDecorator
decorators.@Injectable
decorator to classes that injections:from minos.common import Injectable
@Injectable("THE_INJECTION_NAME")
class MyInjectableClass:
...
minos-http-aiohttp
package:poetry add minos-http-aiohttp@^0.6
HttpConnector
instance to service.injections
section of config.yml
file:...
service:
injections:
http_connector: minos.plugins.aiohttp.AioHttpConnector
...
...
...
routers
section to config.yml
file:...
routers:
- minos.networks.BrokerRouter
- minos.networks.PeriodicRouter
- minos.networks.RestHttpRouter
...
minos.common.Config
usages according to the new provided API:
config.query_repository._asdict()
, that must be transformed to config.get_database_by_name("query")
RefException
to be raised when some reference cannot be resolved.Ref
, Event
and FieldDiffContainer
Event.get_one
in favor of Event.get_field
.Event.get_all
in favor of Event.get_fields
.TypeHintComparator
.Model
.dict
to Model
instances on field setters.resolve_references: bool
default value to False
defined at PreEventHandler.handle
.PreEventHandler
.BrokerDispatcher
, RestHandler
and PeriodicTask
.SagaContext
.Condition.LIKE
operator to be used with the find
method from SnapshotRepository
.get_all
method to RootEntity
and SnapshotRepository
to get all the stored instance on the repository.SnapshotService
command topics to avoid collisions with application-level topics.TransactionService
command topics to avoid collisions with application-level topics.query_repository
section to MinosConfig
.MinosRedefinedEnrouteDecoratorException
was not raised.minos-microservice-aggregate~=0.5.2
.Aggregate
as RootEntity
.AggregateRef
as ExternalEntity
.ModelRef
as Ref
.AggregateDiff
as Event
.Aggregate
base class, with the purpose to move the business logic from the minos.cqrs.CommandService
to this brand-new class.kafka
related code to the minos-broker-kafka
plugin.minos-discovery
related code to the minos-discovery-minos
plugin.PostgreSqlQueuedKafkaBrokerPublisher
from minos-microservice-networks
.InMemoryQueuedKafkaBrokerPublisher
from minos-microservice-networks
.KafkaBrokerPublisher
from minos-microservice-networks
.KafkaBrokerSubscriber
from minos-microservice-networks
.KafkaBrokerSubscriberBuilder
from minos-microservice-networks
.PostgreSqlQueuedKafkaBrokerSubscriberBuilder
from minos-microservice-networks
.InMemoryQueuedKafkaBrokerSubscriberBuilder
from minos-microservice-networks
.MinosDiscoveryClient
from minos-microservice-networks
.minos-microservice-common~=0.4.0
.minos-microservice-networks~=0.4.0
.minos.common.MinosPool
acquired instances.minos-microservice-common~=0.4.0
.minos-microservice-aggregate~=0.4.0
.minos-microservice-networks~=0.4.0
.BrokerDispatcher
to break the direct relationship between BrokerHandler
and BrokerPublisher
.content_type
argument to RestResponse
's constructor to be able to retrieve the result in a format other than json
.BrokerMessage
and implement the BrokerMessageV1
and BrokerMessageV1Payload
to be able to work with different microservice versions in the future.BrokerPublisher.send
method to follow the (message: BrokerMessage) -> None
prototype instead of a big list of arguments referred to the messages attributes.brokers.publishers
module.
BrokerPublisher
base class with a send(message: BrokerMessage) -> Awaitable[None]
method.BrokerPublisherQueue
base class with an enqueue(message: BrokerMessage) -> Awaitable[None]
and a dequeue() -> Awaitable[BrokerMessage]
methods.KafkaBrokerPublisher
as the kafka
's implementation of the publisher.PostgreSqlBrokerPublisherQueue
as the postgres
implementation of the publisher's message queue.brokers.handlers
.
BrokerSubscriber
base class with a receive() -> Awaitable[BrokerMessage]
method.BrokerSubscriberQueue
base class with an enqueue(message: BrokerMessage) -> Awaitable[None]
and a dequeue() -> Awaitable[BrokerMessage]
methods.KafkaBrokerSubscriber
as the kafka
's implementation of the subscriber.PostgreSqlBrokerSubscriberQueue
as the postgres
implementation of the subscriber's message queue.DynamicBroker
and DynamicBrokerPool
as BrokerClient
and BrokerClientPool
. The new BrokerClient
has a send(message: BrokerMessage) -> Awaitable[None]
method for sending messages and a receive() -> Awaitable[BrokerMessage]
to receive them.BrokerPublisher
minos-microservice-common~=0.4.0
.minos-microservice-common~=0.4.0
.minos-microservice-aggregate~=0.4.0
.minos-microservice-networks~=0.4.0
.