Activities of "Denis"

My question is about communication of modules within monolith application. In case of microservices it is clear that communication perfomred via API implemented by each service and messaging. But what if I want to use all modules in monotlith application? What is way of integration? I assume that domains, for example, should not access each other... I think that there should be way to replace implementation of api client with another implementation (on startup) which calls application services directly (not via network).

For exmaple, we have indentity application and Shop application (2 microservices). Shop implements API endpoint which returns info about purchase, which contains product info, amount, price and so on (shop domain) and client full name (identity). Shop calls endpoint of Identity returning user fullname, attaches it to purchase info and returns to user. Is it correct way? Or such data consisting of data from different applications must be constructed on 3rd part of system?

  • ABP Framework version: v3.X.X
  • UI type: Angular
  • Tiered (MVC) or Identity Server Seperated (Angular): yes
  • Exception message and stack trace: no
  • Steps to reproduce the issue: no

@liangshiwei Thanks for your reply. But it is not what I am looking for.

In abp doc it is described that it is better to start development from monolith and when later update modules to work as microservices. We need module be able to work in monloth and as microervice.

  1. Do you have monolith->microservices migation process described somewhere?
  2. How modules communicate with each other in monolith? I assume that should be done on Application layer to compose/decompose data from different modules and event bus in domain.

I am looking for easy way to use same module as microservice and built in monolith app.

If it is possible, can you please show example with Blogging module?

Sorry, but it does not look you answered on my questions. Maybe I understand that wrong. Can you please explain the way how to use 2 modules communicating with each other in monolith and use them again but as microservices (2 solutions using same modules: one as monolith, another one as microservices)? It is clear how modules communicate with each other in microservices - via API and events. But it is not clear how I can use same module (eg blogging module) in monolith. Should communication with built in module still be performed via API (monolith app accessing itself via network)?

Maybe you have some sample project for the monolith best practice? It will help a lot.

@liangshiwei thanks for your reply. It is I looked for

I am looking for a way of failure handling in microservices (modules deployed as apps). Eg when make several calls to different services and one of them fails we need to rollback all changes done in previous called microervices. Does ABP provide any tool for that? How that can be implemented using ABP?

I found Saga pattern, that looks the best approach. Wondering how I can apply it with ABP modules

  • ABP Framework version: last
  • Tiered (MVC) or Identity Server Seperated (Angular): yes

Is there any docs for API implemented by modules? Like I want see what Identity module can provide for us in terms of communication with from our module

  • ABP Framework version: last
  • UI type: Angular
  • Tiered (MVC) or Identity Server Seperated (Angular): yes

Yes, thanks you!

What is the best way to share entity implementation between multiple modules. Eg I have Attribute entity (holds name and value) with some logic implemented inside I need to use the same implementation in several modules to DRY.

I just look at source code of ABP and found that something similar is done in Framework folder.

Thanks

  • ABP Framework version: latest
  • UI type: Angular
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Seperated (Angular): yes

@liangshiwei Thanks

I agree with you and I would not want to reference domain of another module. I just looking for best way and figure out that my design of modules is just wrong

I have modules A and B implemented using ABP module template. Also I have application which created using ABP Application Temaplate I referenced modules A and B in the application accordinly layers. Module A uses API of B (references HttpApi,Client). How can I specify implemention of required by A services, which provided by assembly B?

  • ABP Framework version: v4.2.0
  • UI type: Angular
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): no
  • Exception message and stack trace:
Showing 1 to 10 of 46 entries
Made with ❤️ on ABP v8.2.0-preview Updated on March 25, 2024, 15:11