1.Yes it is possible, and the best solution that I see in .NET is by using WCF.
So your server will implement a WCF service and will provide this interface for communication with its clients and also will could be client by communicating with other server/ servers that are exposing their WCF services.
2.I suggest you also to host your main server (that is also client) into an application of type windows services.
3.If you are interesting in speed optimisation, and if your main server and the other host servers that communicates with it are installed on the same server/LAN they should communicate by using
NetPipe
binding otherwise
NetTcp
binding is the fastest.
4.For more details there are a lot of article on the net about WCF subject, including the next ones:
NetPipe Binding in WCF using window service[
^]
NetTcp Binding in WCF using window service[
^]