Nie ma niczego, co wyraźnie zabrania lub przemawia przeciwko używaniu procedur przechowywanych z mikrousługami.
Oświadczenie: Nie lubię procedur przechowywanych z POV dewelopera, ale nie ma to żadnego związku z mikrousługami.
Procedury przechowywane zwykle działają na bazie danych monolitów.
Myślę, że ulegasz logicznemu błędowi.
Obecnie przechowywane procedury maleją. Większość procedur przechowywanych, które są nadal w użyciu, pochodzi ze starszej bazy kodu, która została zachowana. W tamtych czasach monolityczne bazy danych były również znacznie bardziej rozpowszechnione w porównaniu z popularnością mikrousług.
Przechowywane procy i monolityczne bazy danych występują zarówno w starych bazach kodów, dlatego częściej widujesz je razem. Ale to nie jest związek przyczynowy. Nie używasz przechowywanych proc, ponieważ masz monolityczną bazę danych. Nie masz monolitycznej bazy danych, ponieważ używasz przechowywanych proc.
większość książek o mikrousługach zaleca jedną bazę danych na mikrousługę.
Nie ma technicznego powodu, aby te mniejsze bazy danych nie mogły mieć procedur przechowywanych.
Jak wspomniałem, nie lubię przechowywanych proc. Uważam je za nieporęczne i odporne na przyszłe utrzymanie. Myślę, że rozprzestrzenianie sproców w wielu małych bazach danych dodatkowo pogarsza problemy, których już nie lubię. Ale to nie znaczy, że nie da się tego zrobić.
ponownie większość książek o architekturze mikrousługowej stwierdza, że powinny być autonomiczne i luźno powiązane. Korzystając z zapisanych procedur zapisanych np. W Oracle, ściśle łączy mikrousługę z tą technologią.
Z drugiej strony, ten sam argument można wysunąć dla dowolnej ORM, której używa Twoja mikrousługa. Nie każda ORM będzie również obsługiwać każdą bazę danych. Sprzęganie (szczególnie jego szczelność) jest pojęciem względnym. To kwestia bycia tak swobodnie, jak to tylko możliwe.
Sprocs generalnie cierpią z powodu ciasnego połączenia, niezależnie od mikrousług. Odradzam generalnie sproki, ale nie szczególnie, ponieważ używasz mikrousług. To ten sam argument, co poprzednio: nie sądzę, że sproki są właściwą drogą (ogólnie), ale to może być tylko moja stronniczość i nie jest to związane z mikrousługami.
większość książek MSA (które przeczytałem) zaleca, aby mikrousługi były zorientowane na biznes (zaprojektowane przy użyciu DDD). Przeniesienie logiki biznesowej do procedur przechowywanych w bazie danych już tak nie jest.
To zawsze było moim głównym problemem wobec sprocs: logiki biznesowej w bazie danych. Nawet jeśli nie jest to intencją, zwykle kończy się w ten sposób.
Ale znowu ten problem istnieje niezależnie od tego, czy korzystasz z mikrousług, czy nie. Jedynym powodem, dla którego wygląda to na większy problem, jest to, że mikrousługi popychają cię do modernizacji całej architektury, a sproki nie są już tak uprzywilejowane we współczesnych architekturach.