Files
dance-lessons-coach/adr/README.md
Gabriel Radureau 0aedf829de
All checks were successful
CI/CD Pipeline / Build Docker Cache (push) Successful in 14s
CI/CD Pipeline / CI Pipeline (push) Successful in 3m52s
feat: implement schema-per-scenario isolation for BDD tests
- Add BDD_SCHEMA_ISOLATION env var to enable schema-per-scenario mode
- Generate unique schema names using SHA256 hash of feature+scenario
- Implement SetupScenarioSchema() and TeardownScenarioSchema() methods
- Handle search_path configuration for schema isolation
- Use CASCADE drop to clean up all scenario-created DB objects
- Add isSchemaIsolationEnabled() helper to suite.go
- Update cleanup flow: skip table clearing when schema isolation is active
- Add ADR 0025 documenting isolation strategies and decision rationale

Activation: Set BDD_SCHEMA_ISOLATION=true to enable
Debug: Set BDD_ENABLE_CLEANUP_LOGS=true for verbose isolation logging

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-04-10 22:46:02 +02:00

5.4 KiB

Architecture Decision Records (ADRs)

This directory contains Architecture Decision Records (ADRs) for the dance-lessons-coach project.

Index of ADRs

Number Title Status
0001 Go 1.26.1 Standard Accepted
0002 Chi Router Accepted
0003 Zerolog Logging Accepted
0004 Interface-Based Design Accepted
0005 Graceful Shutdown Accepted
0006 Configuration Management Accepted
0007 OpenTelemetry Integration Accepted
0008 BDD Testing Accepted
0009 Hybrid Testing Approach Accepted
0010 CI/CD Pipeline Design Accepted
0011 Trunk-Based Development Accepted
0012 Commit Message Conventions Accepted
0013 Version Management Lifecycle Accepted
0014 Swagger Documentation Accepted
0015 Rate Limiting Strategy Accepted
0016 Cache Invalidation Strategy Accepted
0017 JWT Secret Rotation Accepted
0018 Configuration Hot Reloading Accepted
0019 BDD Feature Structure Accepted
0020 Database Migration Strategy Accepted
0021 API Versioning Strategy Accepted
0022 Rate Limiting and Cache Strategy Accepted
0023 Config Hot Reloading 🟡 Proposed
0024 BDD Test Organization and Isolation 🟡 Proposed
0025 BDD Scenario Isolation Strategies 🟡 Proposed

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

How to Add a New ADR

  1. Create a new file with the next available number (e.g., 0010-new-decision.md)
  2. Follow the template format
  3. Update this README.md with the new ADR
  4. 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