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.
public async Task<MyOutputDto> ForwardItToServer2(MyInputDto input)
//Forward This to Server 2
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.
2) 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.