After a detailed research of various asynchronous techniques such as Promises, Futures, Tasks and Reactive Extensions we came with a new paradigm that solved all our asynchronous problems very elegantly: The Streams Paradigm
It's inspired by the reactive approach, though superior in many aspects such as abstraction, abortion, resumables etc.
It's a completely rethought way of writing declarative code, making complex asynchronous operations and transactions (and probably even concurrency) a piece of cake! Nearly everything can be represented, thus abstracted away by a stream..
UI Elements Sockets Requests (HTTP etc.) Calculations the list goes on...This way streams become a consistent protocol of asynchronous and concurrent communication between various application components ranging from the UI frontend to the networked backend.
We published the first beta release of a QML implementation with a working example aboard, be sure to check it out!
https://qbeon.github.io/QuickStreams/