Servly is an in development open-source and cross-platform framework to assist building modern cloud-native microservices on the .NET platform.
It will consist of a number of configurable and mixable modules to give you flexibility while constructing your microservices including support for multi-tenancy scenarios.
Servly is still under heavy initial development and the functionality and/or interfaces that it provides are subject to change without warning between package versions until the v1
release.
Once v1
has been solidified for release, full semantic versioning will be utilized alerting of any breaking changes.
The goals for this project are still in flux, currently the following is being targeted to be implemented for the v1
release.
Planned = 🚧
Work Started = 🏗
v1 Completed = ✔
Considering = ❓
- Contextual Authentication (✔): Access a contextual state of current authentication while abstracting the authentication method, intended for use in DDD scenarios.
- Data Persistence Providers (🏗): Persistence Providers (used internally initially) for common persistence solutions. (Redis, EF Core)
- Service Hosting (✔): Helpers for setting up services and application pipeline to reduce setup effort for new services.
- Configuration (🚧): Standardized and low effort configuration setup to reduce boilerplate in service startup.
- Logging (🚧): Standardized and low effort logging setup to reduce boilerplate in service startup.
- Request Idempotency (✔): Middleware to enable idempotent http request handling and prevent duplicate execution of sensitive requests.
- Message Bus (🚧): Full featured events message bus system for inter service communication.
- RabbitMQ (🚧): Implementation of Message Bus using RabbitMQ as a provider.
- Azure Service Bus (❓): Implementation of Message Bus using Azure Service Bus as a provider.
- Caching (❓): Full featured caching implementation providing; Memory, Distributed and Tiered caching.
- CQRS (🚧): Integration into an existing package or a new implementation of a Command Query Responsibility pattern.
- Tenant Identification and Specific Configuration (❓): Implementation of a fully customizable Tenant identification and configuration scheme to allow handling tenant specific requests with specific configuration.
- Tenant Aware Data Persistence Providers (❓): Extension to Persistence Providers with support for Tenant Isolation.
- Tenant Aware Caching (❓): Extension to Caching with support for Tenant Isolation.
Documentation Coming Soon
Licensed under MIT
Copyright (c) 2022 DrBarnabus