Monolithic service vs micro services
# spicedb
l
Hello , I just want to ask the community a question about the uses you have practiced with SpicedB Do you prefer • a component-based approach (solution A, direct connexion , simpler solution) ? • or a more micro-service approach (solution B, decoupled ) ? Deployment is done on Kubernetes I hope my drawings are clear Best Regards https://cdn.discordapp.com/attachments/844600078948630559/1222179481570115624/A-ComponentIntegrationSpiceDB.jpg?ex=66154657&is=6602d157&hm=75ce64c846ce29eed1e0555c107de071737e3eaa0f521cc0945e60d343cafeb8& https://cdn.discordapp.com/attachments/844600078948630559/1222179481926766602/B-ServiceIntegrationSpiceDB.jpg?ex=66154657&is=6602d157&hm=1e959e6fd1405396a6b949de95768ae2aeb79fd2d06234d6b8a52e8bf9ca993d&
v
I think that's is really up to you. SpiceDB shines when several bounded contexts are modeled on the schema because it makes interoperability between those possible. On the client side, whether you use a single monolithic service vs services split but bounded context that up to you.
l
Thank you vroldanbet , I appreciate your reply Yes, the choice of the micro-service design is the responsibility of the architect, not the SpiceDB product itself I'm torn between the two On the one hand, there is a decoupling between SpiceDB and the micro-service It takes more work to code (you need to hide the connection inside the microservice for example ) You can have an app in Java and a microservice in Golang (I did that for a POC) On the other hand, it's easier to do, but you introduce a strong coupling with your application And if your app is in Java, you stay in Java To be or not to be… https://cdn.discordapp.com/attachments/1222179482153127946/1224656530033475655/micro-serviceOnSPiceDB.jpg?ex=661e4945&is=660bd445&hm=bfa5114923d063d0b5c82dd1d68a6aa6a6638421c445d46e287feb8b7dfc65ed&
v
Having worked at large engineering organizations, my recommendation is to keep things simple ™️ and only move to microservices when the situation demands it. You spare yourself of quite a headhache. Providing the substrate to run microservices to an engineering organization is a high cost to pay for a small eng organizations, IMHO.
l
Thanks again for your remark. I have summarized the 2 points of view here under Archimate :