• те, що ти видав мобільним аппкам — вони ж можуть роками не оновлюватись
• схема обміну між кількома сервісами
• схема бд, у якої є кілька клієнтів — а під час апгрейду сервісу вочевидь різні версії треба рахувати різними клієнтами
• бібліотека, що ти виклав на гітхабі
• та й таке інше
А що значит підписуєшся? Це значить, що якщо ти притомна людина, зворотню сумісніть ти ламати не будеш. Не будеш видаляти поля. Не будеш перейменовувати стовпчики у базі даних. Не будеш змінювати у меншу сторону сігнатуру функції.
Чому? Тому що це зменшує кількість страждань у світі. Апка не перестане працювати. Сервіси не зламаються і їх не треба буде лагодити. Клієнти БД не помітять ваших змін. Краса!
Насправді, коли це внутрішня штука, то змінювати можна все, просто у кілька релізів. Хочеш перейменувати поле з
uuid на id у повідомленнях сервісу А так, що сил немає? Випускаєш сервіс Б, який читає обидва поля, а потім вже сервіс А з перейменуванням. А потім ще можна закріпити релізом сервісу Б, який тільки другу назву читає. Коли таких споживачів штук 3-5, перейменовувати поле не хочеться. І не треба. :)
Можна вчитися у Clojure: береш якийсь код на гітхабі, який 8 років не торкалися, а він працює. Фантастика!