Open Closed

Backend Appl #9289


User avatar
0
NH-Support created

Hi ABP Support,

We are enterprise subscribers, and we’ve invested in the ABP platform to build a distributed microservice system. However, we are currently finding that the default microservice template promotes tight coupling through shared libraries, project references, and centralized DB access—particularly regarding the Identity module. We need your architectural guidance and possibly a working sample for: How can we fully decouple all services so that each microservice is independently buildable, testable, package, and deployable, using only REST/gRPC or messaging for communication?


4 Answer(s)
  • User Avatar
    0
    NH-Support created

    Dear ABP Team,

    We kindly request your assistance and an update regarding this request.

    Thank you.

  • User Avatar
    0
    enisn created
    Support Team .NET Developer

    Hi,

    You can use gRPC in your newly created custom services by following this article: https://abp.io/docs/commercial/8.1/startup-templates/microservice/using-grpc

    But the pre-built ABP modules are using HTTP calls and distributed events to access each other, and Administrator service has to access multiple database to build all the application configuration properly. It's really tough to change it right now. We also discussed a lot of different cases and still most optimized way was this one.

    I understand your concerns right now, especially if you use multi-repo and host your services in different repositories, this dependencies may become a bigger case to solve. You may push .Shared and .Contracts package to a private nuget server and consume them in a distributed repository case or use submodues of git, but each case will have different cons.

    As a short answer, currently is not possible to fully decouple ABP's built-in services, but you can still build your services without coupling

  • User Avatar
    0
    enisn created
    Support Team .NET Developer

    Hi,

    In the screenshot it seems you're using old microservice template. In the new template most of the problems are resolved. Can you try creating a new Microservice Template by using ABP Studio and check how it works. You may slowly migrate to the new pattern

  • User Avatar
    0
    enisn created
    Support Team .NET Developer

    You can still use Static Client Proxies in your existing project to prevent package dependencies with.Contracts packages. This dependency easily can be eliminated

Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v9.3.0-preview. Updated on June 13, 2025, 11:37