Не існує нічого, що прямо забороняє чи не заперечує проти використання збережених процедур з мікросервісами.
Відмова: Мені не подобаються збережені процедури з POV розробника, але це ніяк не пов'язане з мікросервісами.
Збережені процедури зазвичай працюють на монолітній базі даних.
Я думаю, ти піддаєшся логічній помилковості.
Сьогодні зберігаються процедури знижуються. Більшість збережених процедур, які все ще використовуються, використовуються зі старої бази даних, яка зберігається навколо. Тоді монолітні бази даних також були набагато більш поширеними порівняно з тим, коли мікросервіси стали популярними.
Збережені програми та монолітні бази даних зустрічаються у старих кодових базах, саме тому ви бачите їх разом разом. Але це не причинно-наслідковий зв’язок. Ви не використовуєте збережені програми, оскільки у вас є монолітна база даних. У вас немає монолітної бази даних, оскільки ви використовуєте збережені програми.
Більшість книг про мікросервіси рекомендують по одній базі даних на мікросервіс.
Немає жодних технічних причин, чому ці менші бази даних не можуть зберігати процедури.
Як я вже згадував, мені не подобаються збережені програми. Я вважаю їх громіздкими та стійкими до подальшого обслуговування. Я думаю, що поширення проростків по багатьох невеликих базах даних ще більше посилює проблеми, які мені вже не подобаються. Але це не означає, що цього неможливо зробити.
знову ж таки більшість книг з архітектури мікросервісу стверджують, що вони повинні бути автономними і нещільно пов'язаними. Використовуючи збережені процедури, написані спеціально в Oracle, щільно з'єднують мікросервіс із цією технологією.
З іншого боку, той же аргумент можна зробити для будь-якого ORM, який використовує ваша мікросервіс. Не кожна ORM також підтримуватиме кожну базу даних. Зчеплення (конкретно його герметичність) - відносна концепція. Справа в тому, щоб бути таким нещільним, наскільки ви розумно можете бути.
Sprocs взагалі страждають від тісного зчеплення, незалежно від мікропослуг. Я б радив проти відростків взагалі, але не особливо, тому що ви використовуєте мікросервіси. Це той самий аргумент, що і раніше: я не думаю, що проростки - це шлях (в цілому), але це може бути просто моя упередженість, і це не пов'язане з мікропослугами.
Більшість книг msa (які я читав) рекомендують мікросервіси орієнтуватися на бізнес (розроблений за допомогою ddd). Переміщення ділової логіки в збережені процедури в базі даних вже не відбувається.
Це завжди було моєю основною справою про паростки: бізнес-логіка в базі даних. Навіть коли немає наміру, воно, як правило, завжди закінчується таким чином.
Але знову ж таки, що захоплення існує незалежно від того, використовуєте ви мікросервіси чи ні. Єдина причина, що це виглядає як більша проблема, - це те, що мікросервіси підштовхують вас до модернізації всієї архітектури, і проростки вже не є такою перевагою в сучасній архітектурі.