Sdílení Doctrine Entit a Repositories napříč microservices

lukashunka
Bronze Partner | 1
+
0
-

Ahoj všem,

rád bych znal váš názor případně doporučení na best practice.

Máme databázi se kterou v aplikaci pracujeme pomocí Doctrine Entit a repozitářů.

Potřebujeme kvůli zlepšení výkonu některých operací rozkouskovat aplikaci na microservices ale napříč jimi sdílet stejnou strukturu databáze, repozitářů a práci s nimi.

Stahujeme opravdu hodně dat se kterými dále pracujeme a chceme tuto logiku vyčlenit mimo hlavní aplikaci kvůli výkonu a budoucímu rozpadu na microservices s API. Stahování a zpracování dat probíha v rámci RabbitMQ. Pro komunikaci mezi jednotlivými částmi už nyní používáme DTO.

Z mého pohledu se jako nejjednodušší pro implementaci změn napříč aplikací jeví oddělení Entit a Repozitářů do samostatného balíčku např aplikace/database který se do aplikace bude přidávat pomocí composeru a napíše se proto extension která Entity a Repozitáře do aplikace přidá.

Existuje jiné / lepší řešení které přehlížím?

MajklNajt
Člen | 471
+
0
-

ahoj, myslím, že extrahovať si entity do samostatného balíčku je to najlepšie čo môže byť ako z hľadiska DRY, tak z hľadiska udržateľnosti… možno by som ešte na väzby medzi entitami používal interface, aby si prípadne mohol entity rozhodiť do viacerých nezávislých balíčkov – tak by ti stačilo mať potom nejakú default impelementáciu + blank implementáciu