Practical Distributed Programming in C++