Progress

Checklist on roadmap

Clean Architecture

Replace with Vertical Slice Architecture

  • CQRS
    • Commands with PostgreSql + EF Core
    • Queries with MongoDB + EF Core
    • CDC using Debezium
  • MediatR

Test Automation

  • Unit Tests - xUnit and NSubstitute
  • Functional Tests
    • In Memory API Testing WebApplicationFactory
    • Testcontainers
    • BDD using Reqnroll
  • Mutation Tests - Stryker recommended for local only
  • Architecture Tests - NetArchTest.Rules
  • Code Coverage

Orchestration

  • Aspire
    • RDBMS - PostgreSQL
    • NoSQL - MongoDB
    • Distributed Cache - Redis
    • Aspire Dashboard

Health Checks

  • Self
  • PostgreSQL Database
  • Redis
  • MongoDB

Observability - Aspire Dashboard

  • Logging
  • Metrics
  • Distributed Tracing

DAPR

  • Pub / Sub - Redis Streams
    • Code Tour
  • Service Invocation
  • State Management - Redis
    • Save state
    • Read state
    • Delete state
  • Secrets Management - Json File Based
  • Configurations Store
  • Bindings
    • Input: Cron
      • Code Tour

Misc

  • Git ignore
  • Editor config
  • Build props
  • Code Analysis
  • Tool manifest
  • Automapper / Mapster
  • Validation Fluent Validation
  • Dependabot to update outdated nuget packages
  • Security Score Card

Build

  • Local build - Notebook
  • GitHub Action
    • Tool Restore
    • Package Restore
    • Build
    • Test
    • Publish Coverage Report
    • Pack as nuget package
    • Push to nuget.org

Deployment

  • Install Dependencies
    • Dapr
    • Redis
    • Postgresql
    • Aspire Dashboard
  • Dapr Components
    • State store
    • Pub / Sub
    • Secret store
    • Configuration store
    • Cron Binding
  • Deploy API

Performance

  • Load Testing - using K6