Hey guys, I'm going to finish a project like Dropbox but meet the bottleneck. This project consists of metadata module and data module. When a file been uploaded, send request to metadata module first and then upload file to data module. But I don't know how to solve the consistent problem. For example, how to drawback when invoking metadata module successfully and data module unsuccessfully? Do I need distributed transaction?