Cloud-Native β’ Modular β’ Observability-First β’ Production-Ready
CoreSystem is a modular ecosystem of reusable .NET libraries focused on simplifying the development of modern distributed systems and high-performance microservices.
The project provides production-ready building blocks for solving common cross-cutting concerns such as:
- Distributed observability
- Request idempotency
- Logging & tracing
- Infrastructure abstraction
- Cloud-native integrations
- Scalable API development
CoreSystem is designed around clean architecture principles, extensibility, and operational excellence.
| Category | Description |
|---|---|
| π Modular Architecture | Independent reusable NuGet packages |
| π Observability | OpenTelemetry + Metrics + Logging |
| β‘ High Performance | Optimized middleware-first design |
| π§© Extensibility | Provider-based architecture |
| β Cloud-Native | Docker & distributed systems ready |
| π Developer Experience | Minimal setup & plug-and-play integrations |
graph TD
APIs --> CoreSystem
CoreSystem --> Observability
CoreSystem --> Idempotency
Observability --> OpenTelemetry
Observability --> Serilog
Observability --> Prometheus
Idempotency --> PostgreSQL
Idempotency --> Redis
| Package | Description | Status |
|---|---|---|
FGutierrez.Core.Observability |
OpenTelemetry, Serilog, Metrics & Health Checks | β Stable |
FGutierrez.Core.Idempotency |
Distributed idempotency middleware with Redis/PostgreSQL | β Stable |
Production-grade observability integrations for ASP.NET Core applications.
- OpenTelemetry tracing
- Runtime & HTTP metrics
- Serilog integration
- Health checks
- OTLP exporter support
- Prometheus-ready metrics
Extensions/
βββ HealthCheckEndpointsExtensions.cs
βββ HealthCheckExtensions.cs
βββ OpenTelemetryMetricsExtensions.cs
βββ OpenTelemetryTracingExtensions.cs
βββ SerilogExtensions.cs
Distributed idempotency engine for ensuring critical operations execute exactly once.
- Redis provider
- PostgreSQL provider
- Response replay support
- Duplicate request prevention
- OpenTelemetry metrics
- Middleware-based execution pipeline
Storage/
βββ PostgreSQL/
β βββ PostgresIdempotencyStorage.cs
βββ Redis/
βββ RedisIdempotencyStorage.cs
CoreSystem/
β
βββ docs/
βββ src/
β βββ Core.Observability/
β β βββ Extensions/
β β βββ Options/
β β βββ ObservabilityDependencyInjection.cs
β βββ LICENSE
β βββ README.md
β β
β βββ Core.Idempotency/
β βββ Middleware/
β βββ Storage/
β β βββ PostgreSQL/
β β βββ Redis/
β βββ Diagnostics/
β βββ Models/
β βββ Options/
β βββ Extensions/
β βββ IdempotencyExtensions.cs
β βββ LICENSE
β βββ README.md
β
βββ samples/
β βββ Minimal.Test.Api/
β βββ grafana/
β β βββ provisioning/
β β β βββ datasources/
β βββ docker-compose.yml
β βββ prometheus.yml
β βββ otel-collector-config.yml
β βββ Program.cs
β
βββ .github/
β βββ workflows/
βββ LICENSE
βββ global.json
βββ CoreSystem.sln
βββ README.md
- .NET 8
- ASP.NET Core Minimal APIs
- Dapper
- Middleware Pipeline
- OpenTelemetry
- Serilog
- Prometheus
- OTLP Exporter
- PostgreSQL
- Redis
- Docker
- Grafana
git clone https://github.com/FEDERIN/CoreSystem.gitdotnet buildcd samples/Minimal.Test.Api
dotnet rundocker compose up -dThis launches:
- PostgreSQL
- Redis
- OpenTelemetry Collector
- Prometheus
- Grafana
CoreSystem promotes an Observability-First engineering model.
Included integrations:
| Component | Purpose |
|---|---|
| OpenTelemetry | Distributed tracing |
| Prometheus | Metrics collection |
| Grafana | Visualization dashboards |
| Serilog | Structured logging |
| Health Checks | Runtime monitoring |
CoreSystem follows modern backend engineering practices:
- Clean Architecture
- SOLID principles
- Middleware-first integrations
- Provider-based extensibility
- High cohesion / low coupling
- Production-grade defaults
- Cloud-native development
- Distributed Observability
- Idempotency Engine
- Redis Support
- PostgreSQL Support
- OpenTelemetry Integration
- Distributed Messaging
- JWT Security Components
- Rate Limiting
- Distributed Cache
- API Gateway Utilities
- Kubernetes Helpers
Contributions, ideas, and improvements are welcome.
- Fork the repository
- Create a feature branch
- Commit your changes
- Open a Pull Request
MIT License Β© Federin Pastor Gutierrez Ortiz
If this ecosystem helps you, consider giving the repository a star on GitHub.