This is a broad but specific question. The idea is that we want to tie in a 'buddy' functionality to a communications app. Very broadly, I believe that the application clients would connect to a central database/auth service which would provide the buddy data and then allow client apps to connect directly to eachother, without passing communications through the server.
Specifically, however, what solutions, software, products, servers, technologies, etc would be best to implement to handle such a task?
Thanks for reading and responses are much appreciated.
//edit: the com app may run on a linux distro, may be web based, or both