Establish project architecture and design decisions
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
# ADR 0007: Recording Archive and Source Deletion Policy
|
||||
|
||||
## Status
|
||||
|
||||
Accepted
|
||||
|
||||
## Context
|
||||
|
||||
Uncompressed WAV recordings require substantial storage space. However, the
|
||||
original recording must remain available until transcription, diarization and
|
||||
quality verification have completed successfully.
|
||||
|
||||
The system requires a controlled mechanism for compressing recordings and
|
||||
removing temporary source files without risking data loss.
|
||||
|
||||
## Decision
|
||||
|
||||
Recordings shall initially be captured in a processing-friendly lossless
|
||||
format, normally WAV.
|
||||
|
||||
After transcription and diarization have completed, the recording may be
|
||||
converted to an archive format.
|
||||
|
||||
The preferred archive formats are:
|
||||
|
||||
- FLAC for lossless archival
|
||||
- Opus for storage-efficient speech archival
|
||||
|
||||
MP3 may be supported as an export format but is not the preferred internal
|
||||
archive format.
|
||||
|
||||
The original WAV file may only be deleted after:
|
||||
|
||||
1. processing completed successfully,
|
||||
2. all required transcript artifacts were persisted,
|
||||
3. the archive file was created successfully,
|
||||
4. archive integrity was verified,
|
||||
5. explicit user confirmation was received.
|
||||
|
||||
Checksums shall be stored for both source and archive files where practical.
|
||||
|
||||
The processing format and the archive format are intentionally separated.
|
||||
|
||||
## Consequences
|
||||
|
||||
- Temporary WAV files may require significant short-term storage.
|
||||
- Permanent storage consumption is reduced.
|
||||
- Lossless and storage-efficient archive profiles can coexist.
|
||||
- Source deletion remains deliberate and traceable.
|
||||
- Failed or incomplete processing must never trigger automatic source deletion.
|
||||
Reference in New Issue
Block a user