I'm not sure about what distributed systems you are referring to. I might not have worked on anything that complex so far.
I used to find chaining async requests for fetching data from web services across different screens while taking care of variations in app states a bit overwhelming. Now, I tend to start with creating a substantial data model on the app side and unlinking the network calls from the controllers as much as possible to ease this process. Of course many of the things I do now are probably learnt by CS majors in universities. I learnt them the hard way as I am a self taught programmer.