I really like the "call" model and "hold and forwarding" features of UUCP:
- All that's needed for two systems to exchange data is for one to call the other and it doesn't matter which side does or it how.
- A UUCP node will hold messages received by one node, but intended for another, until it makes/receives a call from the destination system or intermediate.
You can have a "leaf" system that calls into a hub system regularly but never receives calls, and it can still bidirectionally communicate due to the above. It'll be slow depending on the call schedule but it worked in the 70's. :)
It's a lot of work though because you have to specify all your nodes, links, and forwarding manually. You also have to integrate it with your UNIX mailer to get standard mail tools working with it, but it wasn't too hard with postfix.