Systems Programming: Designing and Developing Distributed Applications, FIRST EDITION (2016)