You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
6.`.EnsureHealthy()` (blocks startup if unhealthy)
57
+
7.`.ClearAssemblyRegistry()` (frees memory)
58
+
8.`.UseOpenApi()`, `.MapControllers()`
59
+
60
+
### CQRS Pattern
61
+
62
+
Use `ICommand<T>` / `ICommand` for writes, `IQuery<T>` / `IQuery` for reads. Handlers: `ICommandHandler<,>`, `IQueryHandler<,>`. FluentValidation validators are auto-discovered and run as MediatR pipeline behaviors.
63
+
64
+
### Reserved Paths
65
+
66
+
All infrastructure endpoints live under `/above-board/`:
67
+
-`GET /above-board/ping` — returns "pong"
68
+
-`GET /above-board/health` — full health check JSON
69
+
-`GET /above-board/prometheus` — metrics scrape
70
+
-`PUT /above-board/maintenance` — set maintenance mode
71
+
72
+
These paths are excluded from request logging and pass through maintenance mode.
Three modes: `Disabled`, `EnabledForClients` (blocks non-admin routes), `EnabledForAll` (blocks everything except `/above-board/*`). State synchronized across instances via HybridCache + background poller (7s interval). Admin routes are identified by `/api/admin` and `/hub/admin` path prefixes.
112
+
113
+
## Dependency Notes
114
+
115
+
-**MediatR** pinned to `[12.5.0]` — last free version (13+ is commercial)
@@ -371,8 +379,11 @@ The list accepts comma- or semicolon-separated URLs. Invalid entries are logged
371
379
372
380
## Resilience Pipelines
373
381
374
-
Built on Polly via `Microsoft.Extensions.Http.Resilience`. Provides retry, circuit breaker, and timeout policies for
375
-
`HttpClient` calls.
382
+
Built on Polly via `Microsoft.Extensions.Http.Resilience`. Two pipeline variants share the same configuration constants
383
+
from a single source of truth:
384
+
385
+
-**General pipeline** — registered globally via `AddResilienceDefaultPipeline()` on the builder, or used manually via `ResiliencePipelineProvider<string>`
386
+
-**HTTP pipeline** — attached per-client via `AddResilienceDefaultPipeline()` on an `IHttpClientBuilder`, with additional `Retry-After` header support for 429 responses
376
387
377
388
### Options
378
389
@@ -404,12 +415,15 @@ public class MyService(ResiliencePipelineProvider<string> provider)
0 commit comments