/Servly

Microservices and Multitenancy on .NET made simple

Primary LanguageC#MIT LicenseMIT

Servly

Microservices and Multi-tenancy on .NET made simple

GitHub Release NuGet Downloads Build Status Codecov


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.

🚧 Active Development

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.

Goals for MVP

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   = ❓

General

  • 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)
    • Redis (✔): A provider for Redis for use with other Services.
    • EF Core (❓): A provider for EF Core for use with other Services.
  • 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.

Multi-tenancy

  • 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.

Getting Started

Documentation Coming Soon

License

Licensed under MIT

Copyright (c) 2022 DrBarnabus