data-dictionary.md
docs/04-database/data-dictionary.md
Contoh isi file untuk sistem antrian. Sesuaikan dengan implementasi proyek Anda.
# Data dictionary
| Entity.field | Makna | Batas / aturan contoh |
| --- | --- | --- |
| service.code | Kode layanan | Primary key; contoh GENERAL |
| service.capacity | Batas reservasi | Integer non-negatif; scope jadwal perlu ditetapkan proyek |
| antrian.id | ID antrian | UUID primary key; response memakai antrian_id |
| antrian.service_code | Layanan dipilih | FK service.code |
| antrian.user_id | Pemilik | ID identitas dari token; tidak diterima dari body client |
| antrian.status | Status bisnis | Contoh waiting; transisi lain mengikuti kebutuhan proyek |
| antrian.created_at | Waktu pencatatan | UTC |
| idempotency_request.user_id/operation/key | Identitas operasi | Composite unique/primary key |
| idempotency_request.payload_hash | Deteksi payload berbeda | Hash dari payload ternormalisasi |
| idempotency_request.response | Hasil awal | Response yang dapat dikembalikan saat retry |
| idempotency_request.expires_at | Retensi deduplication | Durasi ditetapkan proyek |
| outbox_event.event_id | ID event | UUID; consumer deduplication memakai ID ini |
| outbox_event.aggregate_id | ID antrian | Mengacu antrian.id secara domain |
| outbox_event.event_type | Jenis event | AntrianCreated |
| outbox_event.payload | Data untuk consumer | Minimum sesuai kontrak, tanpa credential |
| outbox_event.published_at | Waktu publish | Nullable sampai relay berhasil |
Data pribadi tidak dicontohkan. Tentukan retensi, index berdasarkan query, dan pemilik data sebelum implementasi.