- Added /api/v2/greet POST endpoint with JSON request/response - Implemented ServiceV2 with Hello my friend <name>! greeting format - Added api.v2_enabled feature flag (default: false) - Extended BDD tests to cover v2 scenarios - Maintained full backward compatibility with v1 API - Added DLC_API_V2_ENABLED environment variable support - Created ADR 0010-api-v2-feature-flag.md - Updated configuration system to support API versioning
2.5 KiB
2.5 KiB
Architecture Decision Records (ADRs)
This directory contains Architecture Decision Records (ADRs) for the DanceLessonsCoach project.
What is an ADR?
An ADR is a document that captures an important architectural decision made along with its context and consequences.
Format
Each ADR follows this structure:
# [Short title is a few words]
* Status: [Proposed | Accepted | Deprecated | Superseded]
* Deciders: [List of decision makers]
* Date: [YYYY-MM-DD]
## Context and Problem Statement
[Describe the context and problem statement]
## Decision Drivers
* [Driver 1]
* [Driver 2]
* [Driver 3]
## Considered Options
* [Option 1]
* [Option 2]
* [Option 3]
## Decision Outcome
Chosen option: "[Option 1]" because [justification]
## Pros and Cons of the Options
### [Option 1]
* Good, because [argument a]
* Good, because [argument b]
* Bad, because [argument c]
### [Option 2]
* Good, because [argument a]
* Good, because [argument b]
* Bad, because [argument c]
## Links
* [Link type] [Link to ADR]
* [Link type] [Link to ADR]
ADR List
- 0001-go-1.26.1-standard.md - Use Go 1.26.1 as the standard Go version
- 0002-chi-router.md - Use Chi router for HTTP routing
- 0003-zerolog-logging.md - Use Zerolog for structured logging
- 0004-interface-based-design.md - Adopt interface-based design pattern
- 0005-graceful-shutdown.md - Implement graceful shutdown with readiness endpoints
- 0006-configuration-management.md - Use Viper for configuration management
- 0007-opentelemetry-integration.md - Integrate OpenTelemetry for distributed tracing
- 0008-bdd-testing.md - Adopt BDD with Godog for behavioral testing
- 0009-hybrid-testing-approach.md - Combine BDD and Swagger-based testing
- 0010-api-v2-feature-flag.md - API v2 implementation with feature flag control
How to Add a New ADR
- Create a new file with the next available number (e.g.,
0010-new-decision.md) - Follow the template format
- Update this README.md with the new ADR
- Commit the changes
Status Legend
- Proposed: Decision is being discussed
- Accepted: Decision has been made and implemented
- Deprecated: Decision is no longer relevant
- Superseded: Decision has been replaced by another ADR