Data Contract

Menengah

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?

PeranTanggung Jawab
Data ProducerTim atau sistem yang menghasilkan data (tim engineering, sumber transaksional, platform event)
Data ConsumerTim atau sistem yang menggunakan data (analytics, data science, BI, ML model)
Data Platform TeamSering jadi fasilitator atau pemilik tooling untuk enforce contract

Apa Isinya Sebuah Data Contract?

Data contract yang solid biasanya mencakup:

  1. Schema: kolom apa saja, tipe datanya apa, mana yang nullable, mana yang required
  2. Semantik: apa arti tiap field, bagaimana cara interpretasinya
  3. SLA (Service Level Agreement): data ini tersedia kapan, seberapa sering diupdate, berapa toleransi keterlambatan
  4. Quality Rules: nilai apa yang valid, range, format, foreign key constraints
  5. Ownership: siapa yang bertanggung jawab kalau ada perubahan atau masalah
  6. Versioning: kalau ada breaking change, gimana proses migrasinya dan berapa lama masa transisi

Bedanya dengan Dokumentasi Biasa

Dokumentasi BiasaData Contract
SifatDeskriptif, pasifPrescriptive, aktif (bisa di-enforce)
EnforcementManual, bergantung disiplin timBisa otomatis lewat tooling
UpdateSering ketinggalan dari kenyataanIdealnya jadi bagian dari deployment process
Konsekuensi pelanggaranNggak adaAda: 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.

Lanjut Latihan

Udah paham Data Contract? Lanjut latihan SQL dan Excel yuk!

Latihan interaktif, langsung di browser.

Mulai Latihan →