Perubahan API

Changelog API internal: apa yang berubah bagi tim lain

5 menit baca

Setiap artikel lain di hub ini mengasumsikan pemanggil sebuah API berada di luar perusahaan: insinyur dari pelanggan, mitra, seseorang yang menemukan dokumentasi sendiri. Banyak API punya jenis pemanggil yang sama sekali berbeda, tim di ruangan sebelah atau dua lantai berjarak, dan itu mengubah perhitungan tentang apa yang harus disampaikan changelog kepada mereka, karena pesan Slack bisa menjangkau mereka dan biasanya tidak pernah ada tiket support yang dibuka. Kebanyakan tim menyimpulkan dari ini bahwa API internal tidak butuh changelog. Yang sebenarnya mereka butuhkan adalah changelog yang berbeda.

Apa yang membuat changelog API internal berbeda dari yang publik?

Audiensnya bisa dijangkau langsung, yang menghilangkan alasan utama kebanyakan changelog API publik ada: menyiarkan ke pemanggil yang tidak bisa dihubungi satu per satu. Tim pemilik API internal biasanya tahu persis tim lain mana yang memanggilnya, kadang sampai ke service tertentu. Itu membuat pesan bertarget, bukan feed publik, jadi pilihan default alami, dan itulah sebabnya API internal begitu sering berakhir tanpa changelog sama sekali: tim pemilik memberi tahu dua atau tiga tim yang diingatnya, dengan asumsi itu sudah mencakup semua orang.

Changelog API publikChangelog API internal
Siapa yang membacaPemanggil eksternal mana pun, kebanyakan tidak bisa dihubungi langsungSekumpulan kecil tim internal yang biasanya diketahui
Kanal defaultHalaman dan feedPesan ke tim pemanggil, idealnya juga halaman
Risiko terbesarPemanggil melewatkan entri sepenuhnyaTim pemilik lupa pemanggil yang tidak diingatnya ada
Yang menggantikan “kami tidak tahu siapa yang memanggil kami”Tidak ada; publikasikan secara luasRegistri pemanggil yang nyata dan terus diperbarui

Kenapa “kami akan memberi tahu tim yang memanggil kami saja” gagal?

Karena kumpulan pemanggil tidak pernah sekecil atau sestatis yang diingat tim pemilik. Sebuah service yang dibangun untuk satu konsumen mendapat pemanggil kedua enam bulan kemudian, lewat integrasi yang tidak pernah diumumkan siapa pun, dan daftar mental “siapa yang memanggil kami” milik tim pemilik sekarang salah tanpa disadari siapa pun. Kegagalan ini wajar dan umum, hasil default dari mengandalkan ingatan alih-alih catatan, bukan tanda ada yang ceroboh. Apa itu breaking change membahas cara memutuskan apakah suatu perubahan API dihitung sebagai breaking sejak awal; kasus internal menambahkan pertanyaan kedua yang lebih sulit di atas itu, yaitu mengetahui siapa yang harus diberi tahu.

Apakah API internal tetap butuh halaman changelog bergaya publik?

Biasanya ya, meski kanal utamanya langsung. Halaman memberi pesan langsung sesuatu untuk ditautkan, sehingga notifikasi bisa singkat (“breaking change di /v2/accounts, detail di sini”) alih-alih mencoba membawa seluruh penjelasan dalam pesan chat yang akan tergeser dan hilang. Halaman itu juga jadi tempat yang bisa diperiksa tim baru, atau tim yang melewatkan pesan langsung, saat integrasi mereka rusak dan mereka mencoba mencari tahu kenapa. Halaman itu tidak perlu dipoles atau publik; halaman itu perlu bisa ditautkan dan bertahan lebih lama dari thread Slack yang mengumumkannya.

Siapa yang sebenarnya memelihara daftar pemanggil?

Tim pemilik, dan ini harus diperlakukan sebagai artefak nyata, bukan pengetahuan lisan. Versi termurah adalah file di repository API itu sendiri, daftar singkat service konsumen dengan penanggung jawab per entri, diperbarui setiap kali integrasi baru dibangun, disiplin yang sama seperti deklarasi dependensi apa pun. Alternatifnya, bertanya ke sana kemari sebelum setiap breaking change, berhasil sampai suatu kali seseorang lupa bertanya pada orang yang tepat, dan API internal yang rusak diam-diam bagi satu tim adalah insiden yang lebih kecil daripada yang publik, tapi tetap insiden, biasanya ditemukan oleh on-call tim itu sendiri alih-alih oleh pemilik API.

# consumers.yml
- service: billing-service
  owner: "#team-billing"
  since: 2026-03-01
- service: reporting-pipeline
  owner: "#team-analytics"
  since: 2026-06-14

File seperti ini mengubah “siapa yang perlu kita beri tahu” dari pertanyaan menjadi pencarian. Tool yang dibangun persis untuk masalah ini, seperti service catalog Backstage, memodelkan API sebagai entitas kelas satu dengan konsumen yang dideklarasikan, untuk alasan yang sama: begitu sebuah organisasi punya cukup banyak service internal, ingatan siapa pun tentang siapa memanggil apa tidak lagi akurat dengan sendirinya, dan sesuatu harus menyimpan catatannya. Dokumentasi untuk tool apa pun yang sudah Anda jalankan secara internal biasanya tempat pertama yang tepat untuk diperiksa sebelum membangun yang khusus sendiri.

Apa yang masuk entri changelog internal yang tidak dibutuhkan changelog publik?

Kekhususan operasional yang lebih banyak, karena pembaca adalah insinyur lain yang akan bertindak atas ini dalam infrastruktur yang sama, bukan membacanya sebagai ringkasan. Di lingkungan mana perubahan itu live dan kapan, karena service internal sering dipromosikan lewat tahap-tahap yang tidak pernah dilihat pemanggil publik. Apakah perubahan itu memerlukan pembaruan konfigurasi atau library klien di sisi konsumen, dirumuskan sebagai perintah jika ada. Dan, karena pemanggil internal sering bisa mengoordinasikan perbaikan langsung dengan tim pemilik, kontak bernama alih- alih kanal support: “beri tahu @maria kalau ini merusak sesuatu” adalah baris yang sepenuhnya masuk akal dalam entri internal dan aneh dalam changelog API publik.

Apakah ini berlaku sama untuk changelog di dalam monorepo?

Ini mempertajam masalah yang sama alih-alih menggantikannya. Changelog monorepo membahas kapan sebuah paket butuh changelog sendiri; API internal yang menjadi salah satu dari beberapa paket dalam monorepo tetap butuh konsumennya dilacak secara eksplisit, karena berbagi repository yang sama dengan pemanggilnya tidak berarti mereka akan menyadari perubahan kecuali ada yang memberi tahu mereka untuk memperhatikan. Kedekatan dalam repo bukan hal yang sama dengan kedekatan dalam perhatian.

FAQ

Apakah API yang hanya internal butuh changelog jika hanya punya satu pemanggil? Hampir tidak, dan pesan langsung ke tim tunggal itu biasanya cukup. Changelog jadi berharga begitu ada lebih dari satu pemanggil, atau begitu daftar pemanggil pernah mengejutkan tim pemilik, karena itu tandanya ingatan saja tidak lagi bisa diandalkan.

Haruskah perubahan API internal melalui review yang sama seperti yang publik? Kata-katanya bisa lebih ringan, karena pembacanya kolega bukan pemanggil eksternal, tapi keputusan apakah suatu perubahan bersifat breaking pantas mendapat kehati-hatian yang sama di kedua kasus. Pemanggil internal tetap punya kode produksi yang bergantung pada perilaku lama.

Bagaimana cara mengetahui siapa yang memanggil API internal jika itu tidak pernah dilacak? Log server atau data trafik dari service mesh adalah jawaban jujur jika registri konsumen tidak pernah dipelihara; perlakukan penemuan itu sebagai saat untuk mulai memeliharanya, bukan sebagai pembersihan satu kali.

Apakah pesan Slack cukup, atau perubahan internal tetap butuh entri changelog formal? Keduanya, untuk apa pun yang bukan murni penambahan. Pesan adalah yang terbaca tepat waktu; entri adalah yang bisa tetap ditemukan oleh tim yang menyelidiki masalah berminggu-minggu kemudian dan tidak pernah melihat pesan itu.


Klaim teknis dalam artikel ini belum ditinjau secara independen. Jika ada yang keliru, beri tahu kami dan kami akan memperbaikinya.

Terkait di changeloop: Dokumentasi developer, Perbandingan alat changelog

changeloop
Tim di balik changelog yang menutup lingkaran. Pengguna meminta sesuatu, timmu mengirimkannya, yang meminta jadi tahu.