Data Contract
Perjanjian formal antara tim yang menghasilkan data (producer) dan tim yang menggunakannya (consumer) soal format, kualitas, dan SLA data tersebut. Intinya: "Aku jamin data yang aku kirim selalu punya format ini, isi kolom ini, dan siap sebelum jam ini."
Apa itu Data Contract?
Pernah ngerasain situasi kayak gini: tim analytics bikin dashboard yang udah jalan berminggu-minggu, tiba-tiba kolom user_id di tabel sumber berubah dari integer ke string karena tim engineering nge-refactor schema. Dashboard error, laporan salah, semua panik. Situasi kayak gini yang data contract coba cegah.
Data contract itu konsep yang meminjam ide dari software engineering, khususnya API contract. Kalau API contract ngatur "endpoint ini terima input X dan return output Y", data contract ngatur "tabel atau stream ini punya struktur Z, kualitas Q, dan tersedia sebelum waktu T."
Siapa yang Terlibat?
| Peran | Tanggung Jawab |
|---|---|
| Data Producer | Tim atau sistem yang menghasilkan data (tim engineering, sumber transaksional, platform event) |
| Data Consumer | Tim atau sistem yang menggunakan data (analytics, data science, BI, ML model) |
| Data Platform Team | Sering jadi fasilitator atau pemilik tooling untuk enforce contract |
Apa Isinya Sebuah Data Contract?
Data contract yang solid biasanya mencakup:
- Schema: kolom apa saja, tipe datanya apa, mana yang nullable, mana yang required
- Semantik: apa arti tiap field, bagaimana cara interpretasinya
- SLA (Service Level Agreement): data ini tersedia kapan, seberapa sering diupdate, berapa toleransi keterlambatan
- Quality Rules: nilai apa yang valid, range, format, foreign key constraints
- Ownership: siapa yang bertanggung jawab kalau ada perubahan atau masalah
- Versioning: kalau ada breaking change, gimana proses migrasinya dan berapa lama masa transisi
Bedanya dengan Dokumentasi Biasa
| Dokumentasi Biasa | Data Contract | |
|---|---|---|
| Sifat | Deskriptif, pasif | Prescriptive, aktif (bisa di-enforce) |
| Enforcement | Manual, bergantung disiplin tim | Bisa otomatis lewat tooling |
| Update | Sering ketinggalan dari kenyataan | Idealnya jadi bagian dari deployment process |
| Konsekuensi pelanggaran | Nggak ada | Ada: alert, rollback, notifikasi consumer |
Kenapa Makin Populer?
Data contract jadi makin banyak dibahas seiring makin banyaknya organisasi yang adopsi pendekatan data mesh, di mana tiap domain punya ownership data masing-masing. Kalau dulu satu tim central yang "jaga" semua data, sekarang ada banyak producer yang distributed, dan consumer butuh cara yang reliable untuk tahu apa yang bisa mereka harapkan dari tiap sumber data.
Mulai dari Mana?
Kalau kamu baru mau coba data contract, langkah paling pragmatis: mulai dari satu tabel kritis yang banyak dikonsumsi. Dokumentasikan schema-nya secara formal, sepakati SLA-nya, dan set alert kalau ada yang melanggar. Itu udah jalan menuju culture data contract yang lebih mature.
Udah paham Data Contract? Lanjut latihan SQL dan Excel yuk!
Latihan interaktif, langsung di browser.