Skip to content

Architecture Decision Records

Architecture Decision Records (ADRs) document significant technical decisions made during the development of Granit.

Each ADR follows a consistent template: Context, Decision, Evaluated Alternatives, Justification, and Consequences.

#TitleStatusDateScope
001Observability Stack — Serilog + OpenTelemetryAccepted2026-02-21Granit.Observability
002Redis via StackExchange.Redis — Distributed CacheAccepted2026-02-21Granit.Caching
003Testing Stack — xUnit v3, NSubstitute and BogusAccepted2026-02-21granit-dotnet
004Asp.Versioning — REST API VersioningAccepted2026-02-22Granit.ApiVersioning
005Wolverine + Cronos — Messaging, CQRS and SchedulingAccepted2026-02-22Granit.Wolverine
006FluentValidation — Business Validation FrameworkAccepted2026-02-24Granit.Validation
007Testcontainers — Containerized Integration TestsAccepted2026-02-24Integration Tests
008SmartFormat.NET — CLDR PluralizationAccepted2026-02-26Granit.Localization
009Scalar.AspNetCore — Interactive API DocumentationAccepted2026-02-26Granit.ApiDocumentation
010Scriban — Text Template EngineAccepted2026-02-27Granit.Templating.Scriban
011ClosedXML — Excel Spreadsheet GenerationAccepted2026-02-27Granit.DocumentGeneration.Excel
012PuppeteerSharp — HTML to PDF RenderingAccepted2026-02-28Granit.DocumentGeneration.Pdf
013Magick.NET — Image ProcessingAccepted2026-02-28Granit.Imaging.MagickNet
014Migrate FluentAssertions to ShouldlyAccepted2026-02-28granit-dotnet
015Sep — High-Performance CSV ParsingAccepted2026-03-01Granit.DataExchange.Csv
016Sylvan.Data.Excel — Streaming Excel File ReadingAccepted2026-03-01Granit.DataExchange.Excel