msc { wordwraparcs=true, hscale=2; Client,ClientMiddleware,ServerMiddleware,Server; Client->ClientMiddleware [ label="server.getBlogPosts()" ]; ClientMiddleware->ClientMiddleware [ label="serializeCall('server.getBlogPosts')" ]; ClientMiddleware->ServerMiddleware [ label="CALL getBlogPosts" ]; ServerMiddleware->ServerMiddleware [ label="deserialize('CALL getBlogPosts')" ]; ServerMiddleware->Server [ label="getBlogPosts()" ]; Server->ServerMiddleware [ label="[{title: 'Article 1'}, {title: 'Article 2'}, ...]" ]; ServerMiddleware->ServerMiddleware [ label="serializeResult([{title: 'Article 1'}, {title: 'Article 2'}, ...])" ]; ServerMiddleware->ClientMiddleware [ label="RES " ]; ClientMiddleware->ClientMiddleware [ label="deserializeResult('RES ')" ]; ClientMiddleware->Client [ label="[{title: 'Article 1'}, {title: 'Article 2'}, ...]" ]; }