This thesis focuses on methods and techniques for transferring data from a compute cloud to a storage cloud by using a buffer at the compute cloud. A space driven, a time driven, and a hybrid buffering technique are discussed. It was found that using buffering at the compute cloud is only beneficial when the load on the system is high. To improve performance a threshold-based and a machine learning based adaptive method are introduced at the buffer to dynamically change between buffering techniques at runtime based on the load on the system state. Using the adaptive methods leads to a significant improvement in performance. A proof-of-concept prototype was built for the different data transfer methods and techniques researched. Experiments performed on the prototype provide insights into system behaviour and performance.