|
16 | 16 |
|
17 | 17 | Minos is a framework which helps you create [reactive](https://www.reactivemanifesto.org/) microservices in Python. Internally, it leverages Event Sourcing, CQRS and a message driven architecture to fulfil the commitments of an asynchronous environment. |
18 | 18 |
|
| 19 | +## Foundational Patterns |
| 20 | + |
| 21 | +The `minos` framework is built strongly following the following set of patterns: |
| 22 | + |
| 23 | +### Application architecture |
| 24 | + |
| 25 | +* [Microservice architecture](https://microservices.io/patterns/microservices.html): Architect an application as a collection of loosely coupled services. |
| 26 | + |
| 27 | +### Decomposition |
| 28 | + |
| 29 | +* [Decompose by subdomain](https://microservices.io/patterns/decomposition/decompose-by-subdomain.html): Define services corresponding to Domain-Driven Design (DDD) subdomains |
| 30 | +* [Self-contained Service](https://microservices.io/patterns/decomposition/self-contained-service.html): Microservices can respond to a synchronous request without waiting for the response from any other service. |
| 31 | + |
| 32 | +### Data management |
| 33 | + |
| 34 | +* [Database per service](https://microservices.io/patterns/data/database-per-service.html): Keep each microservice's persistent data private to that service and accessible only via its API. A service's transactions only involve its database. |
| 35 | +* [Saga](https://microservices.io/patterns/data/saga.html): Transaction that spans multiple services. |
| 36 | +* [CQRS](https://microservices.io/patterns/data/cqrs.html): view database, which is a read-only replica that is designed to support queries that retrieves data from microservice. The application keeps the replica up to date by subscribing to Domain events published by the service that own the data. |
| 37 | +* [Domain event](https://microservices.io/patterns/data/domain-event.html): A service often needs to publish events when it updates its data. These events might be needed, for example, to update a CQRS view. |
| 38 | +* [Event Sourcing](https://microservices.io/patterns/data/event-sourcing.html): Event sourcing persists the state of a business entity such an Order or a Customer as a sequence of state-changing events. Whenever the state of a business entity changes, a new event is appended to the list of events. Since saving an event is a single operation, it is inherently atomic. The application reconstructs an entity's current state by replaying the events. |
| 39 | + |
| 40 | +### Communication style |
| 41 | + |
| 42 | +* [Messaging](https://microservices.io/patterns/communication-style/messaging.html): Services communicating by exchanging messages over messaging channels. (Apache Kafka is used in this case) |
| 43 | + |
| 44 | +### External APIs |
| 45 | + |
| 46 | +* [API gateway](https://microservices.io/patterns/apigateway.html): Single entry point for all clients. The API gateway proxy/route to the appropriate service. |
| 47 | + |
| 48 | +### Service discovery |
| 49 | + |
| 50 | +* [Service registry](https://microservices.io/patterns/service-registry.html): Database of services. A service registry might invoke a service instance's health check API to verify that it is able to handle requests |
| 51 | +* [Self Registration](https://microservices.io/patterns/self-registration.html): Each service instance register on startup and unregister on stop. |
| 52 | + |
| 53 | +### Security |
| 54 | + |
| 55 | +* [Access token](https://microservices.io/patterns/security/access-token.html): The API Gateway authenticates the request and passes an access token (e.g. JSON Web Token) that securely identifies the requestor in each request to the services. A service can include the access token in requests it makes to other services. |
| 56 | + |
| 57 | +### Observability |
| 58 | + |
| 59 | +* [Health Check API](https://microservices.io/patterns/observability/health-check-api.html): A service has a health check API endpoint (e.g. HTTP `/health`) that returns the health of the service. |
| 60 | + |
19 | 61 | ## Installation |
20 | 62 |
|
21 | 63 | ### Guided installation |
|
0 commit comments