Base solution for your next web application
Open Closed

synchronize multiple backend servers with different roles. #4746


User avatar
0
gunpal5 created

Hello,

I am not an expert in distributed systems, I am trying to figure out a solution for my problem.

I have three separate application domains for my web app, I want to deploy them to three different servers. I need these servers to communicate each other and notify on various events. for example:

Let say a user submits a form on web browser. it will go to my application service server, this server would need to call a backend service on my other server (say server 2). now server 2 will perform some task and will call back the server 1 and also notify the server 3 (server 3 would be sending email and sms notifications for the performed task).

  1. So, my question is how can I forward the authentication token from application service on server 1 to server 2.
[AbpAuthorize]
public async Task<MyOutputDto> ForwardItToServer2(MyInputDto input)
        {           
            //Forward This to Server 2
            myServer2Client.Call(input);
        }

I don't want to pass user id or any user identifier while calling to server 2. I need server 2 to identify user id by the token or cookies.

  1. my server 2 is handling background jobs. So, how can I forward signalr notifications from server 2 to web browser via server 1? i.e. server 2 would notify server 1 then it will be forwarded to web browser.

I don't want to use callback urls on server 1. I want to make it work with some realtime bus like signalr. I can't directly connect the frontend to server 2 either.

Is there any solution for this? Or Am I going in wrong direction with this approach? I am feeling like I am missing something basic.

I hope i am clear about my problem.

Regards, Gunpal Jain


No answer yet!