# federin/coresystem architecture

> Architecture diagram of the GitHub repository federin/coresystem, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/federin/coresystem
- Repository: https://github.com/federin/coresystem

## Overview

CoreSystem is a collection of composable .NET infrastructure libraries, rather than one application with a single end-to-end request pipeline. Applications opt into concerns such as HTTP handling, rate limiting, resilience, and observability; the packages also provide independent synchronization, serialization, OpenAPI, and correlation capabilities. The resilience pipeline’s registry, builder, and provider illustrate one internal implementation layer. Relationships are limited to README architecture statements and source-index references; unsampled implementations are represented by their tree paths without inferred wiring.

Main entry points: [`src/Core.Serialization/PayloadSerializer.cs`](https://github.com/federin/coresystem/blob/main/src/Core.Serialization/PayloadSerializer.cs) (Payload serialization), [`src/Core.Observability.Abstractions/IObservabilityContributor.cs`](https://github.com/federin/coresystem/blob/main/src/Core.Observability.Abstractions/IObservabilityContributor.cs) (Observability contracts), [`src/Core.Http/Responses/ResponseCapture.cs`](https://github.com/federin/coresystem/blob/main/src/Core.Http/Responses/ResponseCapture.cs) (Response capture), [`src/Core.RateLimiting/Internal/RateLimitRejectionHandler.cs`](https://github.com/federin/coresystem/blob/main/src/Core.RateLimiting/Internal/RateLimitRejectionHandler.cs) (Rate limiting)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_request["HTTP and API"]
  node_correlation["Correlation middleware"]
  node_http_capture["Response capture<br/>[ResponseCapture.cs]"]
  node_problem_details["Problem mapping"]
  node_rate_limit["Rate limiting"]
  node_openapi["OpenAPI conventions"]
end

subgraph group_execution["Execution infrastructure"]
  node_memory_locks["In-process locks"]
  node_redis_locks["Distributed locks"]
  node_pipeline_registry["Pipeline registry"]
  node_pipeline_builder["Pipeline builder<br/>[PipelineBuilder.cs]"]
  node_strategy_builders["Resilience strategies<br/>[Strategies]"]
  node_pipeline_provider["Pipeline provider"]
  node_resilience_pipeline["Pipeline execution"]
end

subgraph group_telemetry["Observability"]
  node_observability["Logging and telemetry"]
  node_health_checks["Health checks"]
end

subgraph group_data["Serialization"]
  node_serialization["Payload serialization"]
  node_json_serializer["JSON serializer"]
  node_messagepack_serializer["MessagePack serializer"]
  node_protobuf_serializer["Protobuf serializer"]
end

subgraph group_contracts["Shared contracts"]
  node_telemetry_contracts["Observability contracts"]
  node_http_contracts["HTTP abstractions"]
  node_openapi_contracts["OpenAPI options"]
end

node_application(("Application"))

node_application -->|"uses"| node_http_capture
node_application -->|"uses"| node_rate_limit
node_application -->|"uses"| node_resilience_pipeline
node_application -->|"uses"| node_observability
node_pipeline_registry -->|"builds pipelines"| node_pipeline_builder
node_pipeline_builder -->|"configures strategies"| node_strategy_builders
node_pipeline_provider -->|"resolves from"| node_pipeline_registry
node_problem_details -.-> node_http_contracts
node_observability -->|"supports contributors"| node_telemetry_contracts
node_rate_limit -->|"supports contributors"| node_telemetry_contracts
node_resilience_pipeline -->|"supports contributors"| node_telemetry_contracts
node_openapi -->|"uses options"| node_openapi_contracts
node_http_capture -->|"implements capture"| node_http_contracts
node_serialization -.-> node_json_serializer
node_serialization -.-> node_messagepack_serializer
node_serialization -.-> node_protobuf_serializer

click node_correlation "https://github.com/federin/coresystem/blob/main/src/Core.Correlation/CorrelationIdMiddleware.cs"
click node_http_capture "https://github.com/federin/coresystem/blob/main/src/Core.Http/Responses/ResponseCapture.cs"
click node_problem_details "https://github.com/federin/coresystem/blob/main/src/Core.Http.ProblemDetails/Handlers/CoreExceptionHandler.cs"
click node_rate_limit "https://github.com/federin/coresystem/blob/main/src/Core.RateLimiting/Internal/RateLimitRejectionHandler.cs"
click node_openapi "https://github.com/federin/coresystem/blob/main/src/Core.OpenApi/OpenApiDocumentPatcher.cs"
click node_memory_locks "https://github.com/federin/coresystem/blob/main/src/Core.Memory/Synchronization/MemoryLockProvider.cs"
click node_redis_locks "https://github.com/federin/coresystem/blob/main/src/Core.Redis/Synchronization/RedisLockProvider.cs"
click node_pipeline_registry "https://github.com/federin/coresystem/blob/main/src/Core.Resilience/Internal/PipelineRegistry.cs"
click node_pipeline_builder "https://github.com/federin/coresystem/blob/main/src/Core.Resilience/Internal/Builders/PipelineBuilder.cs"
click node_strategy_builders "https://github.com/federin/coresystem/tree/main/src/Core.Resilience/Internal/Strategies"
click node_pipeline_provider "https://github.com/federin/coresystem/blob/main/src/Core.Resilience/Internal/ResiliencePipelineProvider.cs"
click node_resilience_pipeline "https://github.com/federin/coresystem/blob/main/src/Core.Resilience/Internal/ResiliencePipeline.cs"
click node_observability "https://github.com/federin/coresystem/blob/main/src/Core.Observability/ObservabilityDependencyInjection.cs"
click node_health_checks "https://github.com/federin/coresystem/blob/main/src/Core.Observability/Extensions/HealthCheckEndpointsExtensions.cs"
click node_telemetry_contracts "https://github.com/federin/coresystem/blob/main/src/Core.Observability.Abstractions/IObservabilityContributor.cs"
click node_serialization "https://github.com/federin/coresystem/blob/main/src/Core.Serialization/PayloadSerializer.cs"
click node_json_serializer "https://github.com/federin/coresystem/blob/main/src/Core.Serialization/Json/JsonPayloadSerializer.cs"
click node_messagepack_serializer "https://github.com/federin/coresystem/blob/main/src/Core.Serialization/MessagePack/MessagePackPayloadSerializer.cs"
click node_protobuf_serializer "https://github.com/federin/coresystem/blob/main/src/Core.Serialization/Protobuf/ProtobufPayloadSerializer.cs"
click node_http_contracts "https://github.com/federin/coresystem/blob/main/src/Core.Http/Abstractions/IResponseCapture.cs"
click node_openapi_contracts "https://github.com/federin/coresystem/blob/main/src/Core.OpenApi.Abstractions/Options/OpenApiProblemResponsesOptions.cs"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_correlation,node_http_capture,node_problem_details,node_rate_limit,node_openapi toneBlue
class node_memory_locks,node_redis_locks,node_pipeline_registry,node_pipeline_builder,node_strategy_builders,node_pipeline_provider,node_resilience_pipeline toneAmber
class node_observability,node_health_checks toneMint
class node_serialization,node_json_serializer,node_messagepack_serializer,node_protobuf_serializer toneRose
class node_telemetry_contracts,node_http_contracts,node_openapi_contracts,node_application toneIndigo
```

## Components

### HTTP and API

- [Correlation middleware](https://github.com/federin/coresystem/blob/main/src/Core.Correlation/CorrelationIdMiddleware.cs): `src/Core.Correlation/CorrelationIdMiddleware.cs`
- [Response capture](https://github.com/federin/coresystem/blob/main/src/Core.Http/Responses/ResponseCapture.cs): `src/Core.Http/Responses/ResponseCapture.cs`
- [Problem mapping](https://github.com/federin/coresystem/blob/main/src/Core.Http.ProblemDetails/Handlers/CoreExceptionHandler.cs): `src/Core.Http.ProblemDetails/Handlers/CoreExceptionHandler.cs`
- [Rate limiting](https://github.com/federin/coresystem/blob/main/src/Core.RateLimiting/Internal/RateLimitRejectionHandler.cs): `src/Core.RateLimiting/Internal/RateLimitRejectionHandler.cs`
- [OpenAPI conventions](https://github.com/federin/coresystem/blob/main/src/Core.OpenApi/OpenApiDocumentPatcher.cs): `src/Core.OpenApi/OpenApiDocumentPatcher.cs`

### Execution infrastructure

- [In-process locks](https://github.com/federin/coresystem/blob/main/src/Core.Memory/Synchronization/MemoryLockProvider.cs): `src/Core.Memory/Synchronization/MemoryLockProvider.cs`
- [Distributed locks](https://github.com/federin/coresystem/blob/main/src/Core.Redis/Synchronization/RedisLockProvider.cs): `src/Core.Redis/Synchronization/RedisLockProvider.cs`
- [Pipeline registry](https://github.com/federin/coresystem/blob/main/src/Core.Resilience/Internal/PipelineRegistry.cs): `src/Core.Resilience/Internal/PipelineRegistry.cs`
- [Pipeline builder](https://github.com/federin/coresystem/blob/main/src/Core.Resilience/Internal/Builders/PipelineBuilder.cs): `src/Core.Resilience/Internal/Builders/PipelineBuilder.cs`
- [Resilience strategies](https://github.com/federin/coresystem/tree/main/src/Core.Resilience/Internal/Strategies): `src/Core.Resilience/Internal/Strategies`
- [Pipeline provider](https://github.com/federin/coresystem/blob/main/src/Core.Resilience/Internal/ResiliencePipelineProvider.cs): `src/Core.Resilience/Internal/ResiliencePipelineProvider.cs`
- [Pipeline execution](https://github.com/federin/coresystem/blob/main/src/Core.Resilience/Internal/ResiliencePipeline.cs): `src/Core.Resilience/Internal/ResiliencePipeline.cs`

### Observability

- [Logging and telemetry](https://github.com/federin/coresystem/blob/main/src/Core.Observability/ObservabilityDependencyInjection.cs): `src/Core.Observability/ObservabilityDependencyInjection.cs`
- [Health checks](https://github.com/federin/coresystem/blob/main/src/Core.Observability/Extensions/HealthCheckEndpointsExtensions.cs): `src/Core.Observability/Extensions/HealthCheckEndpointsExtensions.cs`

### Serialization

- [Payload serialization](https://github.com/federin/coresystem/blob/main/src/Core.Serialization/PayloadSerializer.cs): `src/Core.Serialization/PayloadSerializer.cs`
- [JSON serializer](https://github.com/federin/coresystem/blob/main/src/Core.Serialization/Json/JsonPayloadSerializer.cs): `src/Core.Serialization/Json/JsonPayloadSerializer.cs`
- [MessagePack serializer](https://github.com/federin/coresystem/blob/main/src/Core.Serialization/MessagePack/MessagePackPayloadSerializer.cs): `src/Core.Serialization/MessagePack/MessagePackPayloadSerializer.cs`
- [Protobuf serializer](https://github.com/federin/coresystem/blob/main/src/Core.Serialization/Protobuf/ProtobufPayloadSerializer.cs): `src/Core.Serialization/Protobuf/ProtobufPayloadSerializer.cs`

### Shared contracts

- [Observability contracts](https://github.com/federin/coresystem/blob/main/src/Core.Observability.Abstractions/IObservabilityContributor.cs): `src/Core.Observability.Abstractions/IObservabilityContributor.cs`
- [HTTP abstractions](https://github.com/federin/coresystem/blob/main/src/Core.Http/Abstractions/IResponseCapture.cs): `src/Core.Http/Abstractions/IResponseCapture.cs`
- [OpenAPI options](https://github.com/federin/coresystem/blob/main/src/Core.OpenApi.Abstractions/Options/OpenApiProblemResponsesOptions.cs): `src/Core.OpenApi.Abstractions/Options/OpenApiProblemResponsesOptions.cs`

### Other components

- **Application**

## Connections

- Application → Response capture: uses (evidence: `README.md`)
- Application → Rate limiting: uses (evidence: `README.md`)
- Application → Pipeline execution: uses (evidence: `README.md`)
- Application → Logging and telemetry: uses (evidence: `README.md`)
- Pipeline registry → Pipeline builder: builds pipelines (evidence: `src/Core.Resilience/Internal/PipelineRegistry.cs`)
- Pipeline builder → Resilience strategies: configures strategies (evidence: `src/Core.Resilience/Internal/Builders/PipelineBuilder.cs`)
- Pipeline provider → Pipeline registry: resolves from (evidence: `src/Core.Resilience/Internal/ResiliencePipelineProvider.cs`)
- Problem mapping → HTTP abstractions
- Logging and telemetry → Observability contracts: supports contributors (evidence: `README.md`)
- Rate limiting → Observability contracts: supports contributors (evidence: `README.md`)
- Pipeline execution → Observability contracts: supports contributors (evidence: `README.md`)
- OpenAPI conventions → OpenAPI options: uses options (evidence: `src/Core.OpenApi/OpenApiDocumentPatcher.cs`)
- Response capture → HTTP abstractions: implements capture (evidence: `src/Core.Http/Responses/ResponseCapture.cs`)
- Payload serialization → JSON serializer
- Payload serialization → MessagePack serializer
- Payload serialization → Protobuf serializer
