Entegrasyon çoğu zaman sonradan yamanır ve en kırılgan yer orası olur. Biz API'yı bir sınır olarak tasarlarız: net, belgelenmiş, değişime dayanıklı.
İki sistemi birbirine bağladığınızda, aralarında bir sınır çizersiniz: biri diğerinden ne isteyebilir, ne alabilir, ne olduğunda ne olur. Bu sınır iyi tasarlanmışsa, iki taraf birbirinden bağımsız gelişebilir. Kötü tasarlanmışsa — ya da hiç tasarlanmamış, sadece yamanmışsa — her değişiklik öbür tarafı kırar. Entegrasyonun kırılgan olmasının sebebi neredeyse her zaman budur.
API'yı bir sözleşme olarak tasarlarız: uç noktalar, veri şekilleri, hata durumları, sürüm politikası — hepsi kod yazılmadan önce net. Bu sözleşme belgelenir (OpenAPI ve benzeri), böylece bağlanan ekipler tahmin etmez, okur. İyi bir API'nın belgesi, satış sonrası bir ek değil, ürünün kendisidir.
Bir sistemin en açık yeri, dışarıya konuştuğu yerdir. Kimlik doğrulama, yetki, hız sınırı ve girdi doğrulamayı sınırın kendisine gömeriz — sonradan eklenen bir katman olarak değil. Dışarıya açık her uç, güvenli varsayılana göre tasarlanır.
Sistemler değişir; API'lar bununla yaşamalı. Sürümleme ve geriye dönük uyumu baştan planlarız, böylece bir tarafın gelişmesi öbür tarafı bir gecede bozmaz. Entegrasyon, bir kriz kaynağı değil, öngörülebilir bir rutin olur.
Birbirini bilmeyen beş sistemi tek tek bağlamak, beş kırılgan bağ demektir. Bir entegrasyon katmanı, bu bağları tek ve tutarlı bir yere toplar — bakımı da, değişimi de kolaylaşır.
Aralarındaki sınırı nasıl çizeceğimizi söyleyelim.