Skip to content

Microservice Template Features

The ConnectSoft Microservice Template provides a comprehensive set of features designed to simplify the development of production-ready, cloud-native microservices. It includes pre-configured components, best practices, and extensibility for diverse use cases.

Architecture Features

Clean Architecture

  • Layered Architecture: Strict separation of concerns with automated enforcement
  • Dependency Rules: Automated validation of dependency flow
  • Architecture Tests: Build-time validation of architectural constraints

See Architecture for detailed architecture enforcement patterns.

Domain-Driven Design

  • Aggregates: Aggregate root pattern implementation
  • Entities: Entity pattern with identity management
  • Value Objects: Immutable value objects
  • Domain Events: Domain event publishing and handling
  • Domain Services: Domain service pattern
  • Repositories: Repository pattern with specifications

CQRS Pattern

  • Processors: Command handlers for write operations
  • Retrievers: Query handlers for read operations
  • Separation: Clear separation between commands and queries

Solution Structure

  • Modular Organization: Projects organized by architectural layers
  • Technology Isolation: Technology-specific implementations in separate projects
  • Dependency Management: Clear dependency flow with validation

See Solution Structure for complete project organization.

Communication Features

REST API

  • ASP.NET Core Controllers: Full REST API support
  • OpenAPI/Swagger: Automatic API documentation
  • API Versioning: Support for multiple API versions

See API Versioning for versioning strategies.

gRPC

  • High-Performance: Efficient binary protocol
  • Streaming: Bidirectional streaming support
  • Code Generation: Automatic code generation from .proto files

GraphQL

  • Schema Definition: GraphQL schema support
  • Resolvers: Query and mutation resolvers
  • Subscriptions: Real-time subscription support

SignalR

  • Real-Time Communication: WebSocket-based real-time messaging
  • Hubs: SignalR hub implementation
  • Groups: Client group management

CoreWCF

  • SOAP Services: CoreWCF SOAP service support
  • WCF Compatibility: WCF service compatibility

Messaging

  • MassTransit: Full MassTransit integration
  • NServiceBus: NServiceBus support
  • Event Bus Abstraction: Transport-agnostic event bus

Persistence Features

NHibernate

  • ORM Support: Full NHibernate ORM integration
  • Fluent Mappings: Fluent NHibernate mappings
  • Query Support: LINQ and Criteria API support

MongoDB

  • Document Database: MongoDB document database support
  • Repository Pattern: MongoDB repository implementations
  • Migrations: MongoDB migration support

Repository Pattern

  • Interface-Based: Repository interfaces in PersistenceModel
  • Specification Pattern: Complex query definitions
  • Unit of Work: Transaction management

Observability Features

Logging

  • Structured Logging: Serilog structured logging
  • Log Levels: Configurable log levels
  • Context Enrichment: Automatic context enrichment

Metrics

  • Prometheus: Prometheus metrics support
  • OpenTelemetry: OpenTelemetry metrics
  • Custom Metrics: Domain-specific metrics

Distributed Tracing

  • OpenTelemetry: Full OpenTelemetry integration
  • Trace Context: W3C Trace Context propagation
  • Correlation IDs: Request correlation tracking

Application Insights

  • Azure Integration: Azure Application Insights support
  • Telemetry: Comprehensive telemetry collection
  • AI Observability: AI service monitoring

Security Features

Authentication

  • Multiple Mechanisms: Support for various authentication types
  • JWT: JWT token validation
  • OAuth2/OpenID Connect: OAuth2 and OpenID Connect support

Authorization

  • Policy-Based: Policy-based authorization
  • Role-Based: Role-based access control
  • Claims-Based: Claims-based authorization

Secrets Management

  • Azure Key Vault: Azure Key Vault integration
  • Secure Storage: Secure secret storage and retrieval
  • Configuration: Secure configuration management

Data Redaction

  • PII Redaction: Automatic PII redaction in logs
  • Secret Masking: Secret masking in telemetry
  • Compliance: GDPR and compliance support

Testing Features

Unit Testing

  • MSTest: MSTest framework integration
  • Mocking: Comprehensive mocking support
  • Test Data: Test data management utilities

Integration Testing

  • Test Host: Integration test host support
  • Real Components: Testing with real components
  • Database Testing: Database integration testing

BDD Testing

  • SpecFlow: SpecFlow BDD framework
  • Feature Files: Gherkin feature file support
  • Acceptance Tests: End-to-end acceptance testing

Architecture Tests

  • NetArchTest: Architecture rule validation
  • Dependency Tests: Dependency rule enforcement
  • Naming Tests: Naming convention validation

Infrastructure Features

Containerization

  • Docker: Docker container support
  • Multi-Stage Builds: Optimized Docker builds
  • Docker Compose: Local development with Docker Compose

Kubernetes

  • Deployment: Kubernetes deployment manifests
  • Health Probes: Liveness, readiness, and startup probes
  • Service Discovery: Kubernetes service discovery

Startup and Warmup

  • StartupWarmupGate: Configurable startup warmup
  • Health Check Integration: Integration with health checks
  • Kubernetes Probes: Kubernetes startup probe support

See Startup and Warmup for detailed patterns.

Cross-Cutting Concerns

Health Checks

  • Comprehensive Checks: System, database, messaging health checks
  • Multiple Endpoints: /health, /ready, /live, /startup
  • UI Dashboard: Health checks UI dashboard

API Management

  • API Versioning: Multiple versioning strategies
  • Rate Limiting: Request rate limiting
  • CORS: Cross-origin resource sharing
  • Swagger/Scalar: API documentation tools

Configuration

  • Options Pattern: Strongly-typed configuration
  • Azure App Configuration: Azure App Configuration integration
  • Feature Flags: Feature flag support
  • Environment-Specific: Environment-specific configuration

Validation

  • Data Annotations: Data annotation validation
  • FluentValidation: FluentValidation support
  • Input Validation: Comprehensive input validation

Exception Handling

  • Global Exception Handler: Centralized exception handling
  • Problem Details: RFC 7807 Problem Details
  • Error Responses: Consistent error response format

AI and Machine Learning Features

Microsoft.Extensions.AI

  • AI Integration: Microsoft.Extensions.AI support
  • Provider Agnostic: Support for multiple AI providers
  • Extensions: AI extension patterns

Semantic Kernel

  • Semantic Kernel: Semantic Kernel integration
  • Plugins: Plugin-based architecture
  • Orchestration: AI orchestration patterns

Model Context Protocol

  • MCP Support: Model Context Protocol integration
  • Context Management: AI context management
  • Vector Ingestion: Vector database integration

DevOps Features

CI/CD Pipelines

  • Azure Pipelines: Azure DevOps pipeline templates
  • Automated Testing: Automated test execution
  • Deployment: Automated deployment pipelines

Infrastructure as Code

  • Pulumi: Pulumi infrastructure as code
  • Terraform: Terraform support (optional)
  • Cloud Resources: Azure and AWS resource provisioning

Summary

The Microservice Template provides:

  • Complete Architecture: Clean Architecture with automated enforcement
  • Multiple Protocols: REST, gRPC, GraphQL, SignalR, CoreWCF
  • Flexible Persistence: NHibernate and MongoDB support
  • Comprehensive Observability: Logging, metrics, tracing
  • Production Security: Authentication, authorization, secrets management
  • Extensive Testing: Unit, integration, BDD, and architecture tests
  • Cloud-Native: Kubernetes, Docker, and cloud platform support
  • AI Integration: Microsoft.Extensions.AI and Semantic Kernel
  • DevOps Ready: CI/CD pipelines and Infrastructure as Code

By leveraging these features, teams can build production-ready microservices that follow industry best practices and ConnectSoft architectural principles.