Skip to content

Architecture Decision Records (ADR)

🇰🇷 한국어 버전

Documentation of architectural decisions made in the Specvital project.

What is an ADR?

An Architecture Decision Record (ADR) captures an important architectural decision made along with its context and consequences. ADRs help maintain decision history across multi-repository microservices.

When to Write an ADR

CategoryExamples
Technology StackFramework selection, library adoption, version upgrades
ArchitectureService boundaries, communication patterns, data flow
API DesignEndpoint structure, versioning strategy, error handling
DatabaseSchema design, migration strategy, indexing approach
InfrastructureDeployment platform, scaling strategy, monitoring
Cross-cuttingSecurity, performance optimization, observability

Templates

TemplateUse Case
template.mdStandard ADR for most decisions

Naming Convention

XX-brief-decision-title.md
  • XX: Two-digit sequential number (01, 02, ...)
  • Lowercase with hyphens
  • Brief and descriptive titles

Technical Areas

AreaAffected Repositories
Parsercore
APIweb
Workercollector
Databaseinfra
Infrastructureinfra
Cross-cuttingmultiple

ADR Index

Cross-cutting (All Repositories)

#TitleAreaDate
01Static Analysis-Based Instant AnalysisCross-cutting2024-12-17
02Competitive Differentiation StrategyCross-cutting2024-12-17
03API and Worker Service SeparationArchitecture2024-12-17
04Queue-Based Asynchronous ProcessingArchitecture2024-12-17
05Polyrepo Repository StrategyArchitecture2024-12-17
06PaaS-First Infrastructure StrategyInfrastructure2024-12-17
07Shared Infrastructure StrategyInfrastructure2024-12-17
08External Repository ID-Based Data IntegrityData Integrity2024-12-22
09GitHub App Integration StrategyAuthentication2024-12-29
10TestStatus Data ContractData Integrity2024-12-29

Core Repository

#TitleAreaDate
01Core Library SeparationCore2024-12-17
02Dynamic Test Counting PolicyCore2024-12-22
03Tree-sitter as AST Parsing EngineParser2024-12-23
04Early-Return Framework DetectionParser2024-12-23
05Parser Pooling DisabledParser2024-12-23
06Unified Framework DefinitionParser2024-12-23
07Source Abstraction InterfaceParser2024-12-23
08Shared Parser ModulesParser2024-12-23
09Config Scope ResolutionConfig2024-12-23
10Standard Go Project LayoutProject2024-12-23
11Integration Testing with Golden SnapshotsTesting2024-12-23
12Parallel Scanning with Worker PoolPerf2024-12-23
13NaCl SecretBox EncryptionCrypto2024-12-23
14Indirect Import Alias Detection UnsupportedParser2025-12-29

Collector Repository

#TitleAreaDate
01Scheduled Re-collection ArchitectureArchitecture2024-12-18
02Clean Architecture Layer IntroductionArchitecture2024-12-18
03Graceful Shutdown and Context-Based Lifecycle ManagementArchitecture2024-12-18
04OAuth Token Graceful DegradationReliability2024-12-18
05Worker-Scheduler Process SeparationArchitecture2024-12-18
06Semaphore-Based Clone Concurrency ControlConcurrency2024-12-18
07Repository Pattern Data Access AbstractionArchitecture2024-12-18

Web Repository

#TitleAreaDate
01Go as Backend LanguageTech Stack2024-12-18

Process

  1. Create: Copy template.mdXX-title.md
  2. Write: Fill in all sections with finalized decision
  3. Localize: Create Korean version in kr/adr/
  4. Review: Submit PR for team review
  5. Merge: Add to index after approval

Open-source test coverage insights