Amarga layanan dideploy kanthi mandiri, sampeyan ora bakal bisa nganggep manawa pemanggil upgrade kanthi sinkron. API versioning plus backward compatibility ngidini produser ngbang tanpa ngrusak konsumen sing wis ana.
Amarga layanan dideploy kanthi mandiri, sampeyan ora bakal bisa nganggep manawa pemanggil upgrade kanthi sinkron. API versioning plus backward compatibility ngidini produser ngbang tanpa ngrusak konsumen sing wis ana.
| Strategi | Conto |
|---|
| URI path | GET /v2/orders/42 |
| Header | Accept: application/vnd.api.v2+json |
| Schema evolution | tambah field, aja ngapus/ngubah jeneng |
NON-BREAKING (safe):
✓ add a new optional field
✓ add a new endpoint
✓ add a new enum value (if clients tolerate unknowns)
BREAKING (needs a new version):
✗ remove or rename a field
✗ change a type or make a field required
✗ change semantics of an existing field
message Order {
string id = 1;
double total = 2;
string currency = 3; // NEW field 3 — old clients ignore it safely
}
Nomor field, ora jeneng, nemtokake format wire, dadi nambah field iku compatible mundur.
Release v2 ─▶ run v1 + v2 together ─▶ migrate consumers ─▶ deprecate v1 ─▶ remove v1
Oja nghapus versi nalika traffic asli isih nggunakake. Jejak panggunaan sadurunge pensiun.
Deployabilitas mandiri mung bisa dadi yen produser bisa ngirim perubahan tanpa koordinasi rilis saben konsumen.
Desain kanggo perubahan tambahan lan ndhukung versi lawas sajrone migrasi iku sing mpreservasi independensi iki tinimbang paksa upgrade big-bang sing rapuh.