Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Sergio García Prado
    @garciparedes

    Hi everyone! I'm glad to announce that the minos-python@0.4.0 has been released today! 🎉

    This new release has the following changelog:

    minos-microservice-aggregate

    • Be compatible with minos-microservice-common~=0.4.0.
    • Be compatible with minos-microservice-networks~=0.4.0.

    minos-microservice-common

    • Add waiting time before destroying the minos.common.MinosPool acquired instances.

    minos-microservice-cqrs

    • Be compatible with minos-microservice-common~=0.4.0.
    • Be compatible with minos-microservice-aggregate~=0.4.0.
    • Be compatible with minos-microservice-networks~=0.4.0.

    minos-microservice-networks

    • Add BrokerDispatcher to break the direct relationship between BrokerHandler and BrokerPublisher.
    • Add content_type argument to RestResponse's constructor to be able to retrieve the result in a format other than json.
    • Add versioning to BrokerMessage and implement the BrokerMessageV1 and BrokerMessageV1Payload to be able to work with different microservice versions in the future.
    • Refactor BrokerPublisher.send method to follow the (message: BrokerMessage) -> None prototype instead of a big list of arguments referred to the messages attributes.
    • Refactor brokers.publishers module.
      • Add BrokerPublisher base class with a send(message: BrokerMessage) -> Awaitable[None] method.
      • Add BrokerPublisherQueue base class with an enqueue(message: BrokerMessage) -> Awaitable[None] and a dequeue() -> Awaitable[BrokerMessage] methods.
      • Add KafkaBrokerPublisher as the kafka's implementation of the publisher.
      • Add PostgreSqlBrokerPublisherQueue as the postgres implementation of the publisher's message queue.
    • Refactor brokers.handlers.
      • Add BrokerSubscriber base class with a receive() -> Awaitable[BrokerMessage] method.
      • Add BrokerSubscriberQueue base class with an enqueue(message: BrokerMessage) -> Awaitable[None] and a dequeue() -> Awaitable[BrokerMessage] methods.
      • Add KafkaBrokerSubscriber as the kafka's implementation of the subscriber.
      • Add PostgreSqlBrokerSubscriberQueue as the postgres implementation of the subscriber's message queue.
    • Refactor 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.
    • Implement a builder pattern on BrokerPublisher
    • Be compatible with minos-microservice-common~=0.4.0.

    minos-microservice-saga

    • Be compatible with minos-microservice-common~=0.4.0.
    • Be compatible with minos-microservice-aggregate~=0.4.0.
    • Be compatible with minos-microservice-networks~=0.4.0.

    Here is the link to the release at GitHub: https://github.com/minos-framework/minos-python/releases/tag/v0.4.0

    Sergio García Prado
    @garciparedes

    Hi! Today we're released the minos-python@0.4.1 patch. 🎉

    This release contains small changes mostly related with the readme files of the project.

    Here is the changelog:

    minos-microservice-aggregate

    • Update README.md.

    minos-microservice-common

    • Update README.md.

    minos-microservice-cqrs

    • Update README.md.

    minos-microservice-networks

    • Update README.md.

    minos-microservice-saga

    • Update README.md.

    Here is the link to the GitHub Release: https://github.com/minos-framework/minos-python/releases/tag/v0.4.1

    Sergio García Prado
    @garciparedes

    Hi everyone! Today we've released the minos-apigateway@0.2.0 🎉

    Here is the changelog:

    • Integration with minos-auth.
    • Add PostgreSQL database with SQLAlchemy dependency.
    • Auth Rules for authentication.
    • Administration section for rules management.

    Here is the link to the GitHub release: https://github.com/minos-framework/minos-api-gateway/releases/tag/v0.2.0

    Sergio García Prado
    @garciparedes

    Hi again! Today we've also released the minos-discovery@0.1.0 🚀

    Here is the changelog:

    • New view /endpoints. Return all endpoints stored.

    Here is the link to the GitHub release: https://github.com/minos-framework/minos-discovery/releases/tag/v0.1.0

    Sergio García Prado
    @garciparedes

    Hi! I'm really happy to announce that the minos-python@0.5.0 has been released! 🎉

    Here is the changelog:

    minos-microservice-aggregate

    • Rename Aggregate as RootEntity.
    • Rename AggregateRef as ExternalEntity.
    • Rename ModelRef as Ref.
    • Rename AggregateDiff as Event.
    • Create the Aggregate base class, with the purpose to move the business logic from the minos.cqrs.CommandService to this brand-new class.
    • Refactor internal module hierarchy.
    • Minor changes.

    minos-microservice-common

    • Minor changes.

    minos-microservice-cqrs

    • Minor changes.

    minos-microservice-networks

    • Extract kafka related code to the minos-broker-kafka plugin.
    • Extract minos-discovery related code to the minos-discovery-minos plugin.
    • Minor changes.

    minos-microservice-saga

    • Minor changes.

    minos-broker-kafka

    • Migrate PostgreSqlQueuedKafkaBrokerPublisher from minos-microservice-networks.
    • Migrate InMemoryQueuedKafkaBrokerPublisher from minos-microservice-networks.
    • Migrate KafkaBrokerPublisher from minos-microservice-networks.
    • Migrate KafkaBrokerSubscriber from minos-microservice-networks.
    • Migrate KafkaBrokerSubscriberBuilder from minos-microservice-networks.
    • Migrate PostgreSqlQueuedKafkaBrokerSubscriberBuilder from minos-microservice-networks.
    • Migrate InMemoryQueuedKafkaBrokerSubscriberBuilder from minos-microservice-networks.
    • Minor changes.

    minos-discovery-minos

    • Migrate MinosDiscoveryClient from minos-microservice-networks.
    • Minor changes.

    Here is the the link to the GitHub Release: https://github.com/minos-framework/minos-python/releases/tag/v0.5.0

    Sergio García Prado
    @garciparedes

    We've been released the minos-python@0.5.1 🎉

    Here is the changelog:

    minos-microservice-aggregate

    • Fix bug related with dependency specification.

    minos-microservice-cqrs

    • Fix bug related with dependency specification.

    minos-microservice-networks

    • Fix bug related with dependency specification.

    minos-microservice-saga

    • Fix bug related with dependency specification.

    minos-broker-kafka

    • Fix bug related with dependency specification.

    minos-discovery-minos

    • Fix bug related with dependency specification.

    Here is the link to the GitHub Release: https://github.com/minos-framework/minos-python/releases/tag/v0.5.1

    We've been released the minos-auth@0.1.0 🎉

    Here is the changelog:

    • First release on PyPI.

    Here is the link to the GitHub Release: https://github.com/minos-framework/minos-auth/releases/tag/v0.1.0

    We've been released the minos-auth-credential@0.1.0 🎉

    Here is the changelog:

    • First release on PyPI.

    Here is the link to the GitHub Release: https://github.com/minos-framework/minos-auth-credential/releases/tag/v0.1.0

    We've been released the minos-auth-token@0.1.0 🎉

    Here is the changelog:

    • First release on PyPI.

    Here is the link to the GitHub Release: https://github.com/minos-framework/minos-auth-token/releases/tag/v0.1.0

    Sergio García Prado
    @garciparedes

    We've been released the minos-cli@0.1.0 🎉

    Here is the changelog:

    • Add minos set broker command.
    • Add minos set database command.
    • Add minos set discovery command.
    • Add minos set api-gateway command.
    • Add minos deploy project command.
    • Add minos deploy microservice command.
    • Refactor minos project new command as minos new project.
    • Refactor minos project init command as minos init project.
    • Refactor minos microservice new command as minos new microservice.
    • Refactor minos microservice init command as minos init microservice.

    Here is the link to the GitHub Release: https://github.com/minos-framework/minos-cli/releases/tag/v0.1.0

    Sergio García Prado
    @garciparedes

    We've been released the minos-cli@0.1.1 🎉

    Here is the changelog:

    • Update links to the repository and website.

    Here is the link to the GitHub Release: https://github.com/minos-framework/minos-cli/releases/tag/v0.1.1

    Sergio García Prado
    @garciparedes

    Hi! I'm happy to announce that the minos-apigateway@0.3.0 has been released! 🎉

    Here is the changelog:

    • Administration section BugFix getting index file.
    • Adjust default auth routes

    Here is the link to the GitHub Release: https://github.com/minos-framework/minos-api-gateway/releases/tag/v0.3.0
    Here is the link to the PyPI Release: https://pypi.org/project/minos-apigateway/0.3.0/

    Sergio García Prado
    @garciparedes

    Hi! I'm happy to announce that the minos-apigateway@0.3.1 has been released! 🎉

    Here is the changelog:

    • Administration section BugFix getting index file.

    Here is the link to the GitHub Release: https://github.com/minos-framework/minos-api-gateway/releases/tag/v0.3.1
    Here is the link to the PyPI Release: https://pypi.org/project/minos-apigateway/0.3.1

    Sergio García Prado
    @garciparedes

    Hi! I'm happy to announce that the minos-python@0.5.2 version has been released today! 🎉

    Here is the changelog:

    minos-microservice-aggregate

    • Add Condition.LIKE operator to be used with the find method from SnapshotRepository.
    • Add get_all method to RootEntity and SnapshotRepository to get all the stored instance on the repository.
    • Rename SnapshotService command topics to avoid collisions with application-level topics.
    • Rename TransactionService command topics to avoid collisions with application-level topics.
    • Minor changes.

    minos-microservice-common

    • Add query_repository section to MinosConfig.
    • Minor changes.

    minos-microservice-networks

    • Fix bug related with enroute decorator collisions in which the MinosRedefinedEnrouteDecoratorException was not raised.
    • Minor changes.

    minos-microservice-saga

    • Add compatibility to minos-microservice-aggregate~=0.5.2.
    • Minor changes.

    Here is the link to the GitHub Release: https://github.com/minos-framework/minos-python/releases/tag/v0.5.2

    Andrea Mucci
    @andrea-mucci

    Hi!, We are happy to announce tha we have release the new version of Minos CLI with a news features

    • added to the template the injection of SQLAlchemy to the QueryService
    • reduced and simplified the scope of deploy command
    • docker-compose as default testing process

    Here is the link to the GitHub Release: https://github.com/minos-framework/minos-cli/releases/tag/v0.1.2

    Andrea Mucci
    @andrea-mucci
    Hi!, We are happy to announce that we have release the new version of Minos CLI
    Sergio García Prado
    @garciparedes

    Hi! I'm happy to announce that the minos-python@0.5.3 version has been released today! 🎉

    Here is the changelog:

    minos-microservice-aggregate

    • Add RefException to be raised when some reference cannot be resolved.
    • Improve attribute and item accessors of Ref, Event and FieldDiffContainer
    • Deprecate Event.get_one in favor of Event.get_field.
    • Deprecate Event.get_all in favor of Event.get_fields.

    minos-microservice-common

    • Big performance improvement related with a caching layer over type hint comparisons at TypeHintComparator.
    • Improve attribute and item accessors of Model.
    • Fix bug related with casting from dict to Model instances on field setters.

    minos-microservice-cqrs

    • Update the resolve_references: bool default value to False defined at PreEventHandler.handle.
    • Improve error messages of PreEventHandler.

    minos-microservice-networks

    • Improve error messages of BrokerDispatcher, RestHandler and PeriodicTask.

    minos-microservice-saga

    • Improve attribute and item accessors of SagaContext.

    Here is the link to the GitHub Release: https://github.com/minos-framework/minos-python/releases/tag/v0.5.3

    Sergio García Prado
    @garciparedes

    Sergio García Prado @garciparedes Mar 04 14:38
    Hi! I'm happy to announce that the minos-python@0.5.4 version has been released today! 🎉

    Here is the changelog:

    minos-microservice-aggregate

    • Fix bug related with Ref.resolve.
    • Add RefResolver.build_topic_name static method.
    • Remove SnapshotService.__get_one__ method.
    • Minor changes.

    Here is the link to the GitHub Release: https://github.com/minos-framework/minos-python/releases/tag/v0.5.4

    Sergio García Prado
    @garciparedes

    Hi! I'm happy to announce that the minos-cli@0.2.1 version has been released today! 🎉

    Here is the changelog:

    • Updated microservices' query repository.
    • Enhanced defaults Redis Docker container.
    • Automatic databases creation in script SQL file.
    • Fixed bugs
    • Improved versions compatibility.

    Here is the link to the GitHub Release: https://github.com/minos-framework/minos-cli/releases/tag/v0.2.1

    Sergio García Prado
    @garciparedes

    Hi! I'm happy to announce that the minos-cli@0.2.2 version has been released today! 🎉

    Here is the changelog:

    • Fixed bugs.

    Here is the link to the GitHub Release: https://github.com/minos-framework/minos-cli/releases/tag/v0.2.2

    Sergio García Prado
    @garciparedes

    Hi! I'm happy to announce that the minos-python@0.6.0 version has been released today! 🎉

    Here is the 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 `RabbitMQBrokerPublisherBuild

    Here is the link to the GitHub Release: https://github.com/minos-framework/minos-python/releases/tag/v0.6.0

    Sergio García Prado
    @garciparedes

    Hi! I'm happy to announce that the minos-python@0.6.1 version has been released today! 🎉

    Here is the changelog:

    minos-microservice-common

    • Fix bug that didn't show the correct exception traceback when microservice failures occurred.

    minos-broker-kafka

    • Improve KafkaBrokerSubscriber's destroying process.

    Here is the link to the GitHub Release: https://github.com/minos-framework/minos-python/releases/tag/v0.6.1

    Sergio García Prado
    @garciparedes

    Hi! I'm happy to announce that the minos-cli@0.3.1 version has been released today! 🎉

    Here is the changelog:

    • Fixed bugs related to microservice testing.

    Here is the link to the GitHub Release: https://github.com/minos-framework/minos-cli/releases/tag/v0.3.1

    Tory Clasen
    @tclasen
    Hello Minos team, I discovered this project while researching for example Python projects implementing or assisting with DDD to share with my team. The project looks interesting, but as a new user I have absolutely no idea how to even start to explore this project.
    Most notably, I can't seem to find any documentation about possible values for the minos set commands. For example, the tutorials give an example of minos set database postgres, but what are the other options?
    Tory Clasen
    @tclasen
    I also have no way to see the scope and scale of the project, I would really like to know if this ships with a web framework, or if I can bring my own. I would also like to know what all of the various microservice middleware this supports, such as circuit breakers, service discovery, schema registries, micro-frontends (does this even have a frontend component?), does it support (true) REST?
    And lastly, I see there is a "python implementation" of Minos, does that imply there are others? Or others planned?
    Andrea Mucci
    @andrea-mucci

    Hi @tclasen , welcome.

    I’m Andrea Mucci, lead architect in Minos

    about how to start with and example project:
    1) do you have any idea or maybe project you want to integrate with microservices?

    we can work with you with to design something easy that would be usefull for you and your team to get a first intro in microservices and minos.

    at the moment minos cli support th following infrastructure configurations:

    1) for database we support postgresql
    2) for brokers we support kafka and rabbitMQ
    3) as api.gateway and discovery we have an internal support for our api-gateway and our discovery, but in the next release ( 0.7.0 ) we will release a plugin for Kong as well

    about the web framework:
    Minos is a pluggable system, everithing work with the principle of plugins, for the REST interface, for example we have a plugin with aiohttp, but you can integrate others web frameworks as well, like fastapi. you can check the folder of our plugins to see how you can implement more plugins ( https://github.com/minos-framework/minos-python/tree/0.7.0/packages/plugins )

    About the future developments of Minos:
    at the moment we support only python, but yes, we want to release the framewrok with different languages, in our roadmap we have, at least javascript and go.

    at the moment we are not supporting microfrontends but one feature that we want to integrate after the first stable release ( 1.0.0 at the end of this month ). we are still discussing how to do that and wich kind of support we can offer, but we are open to receive any kind of advise or help…

    so i hope i have answered all your questions and, again, thank you to take time and for your interest in Minos
    Cheers,
    Andrea

    Sergio García Prado
    @garciparedes

    Hi! I'm happy to announce that the minos-python@0.7.0 version has been released today! 🎉

    Here is the link to the GitHub Release: https://github.com/minos-framework/minos-python/releases/tag/v0.7.0