In the context of executing a task, a synchronous execution indicates that the program waits for the result of the first task before moving on to another task. In contrast, an asynchronous execution does not wait for the result of the first task and it starts executing another task immediately after the first task has begun. Both Futures & Promises, and Monix are Scala libraries that allow users to efficiently perform asynchronous operations.
This talk will introduce the Futures & Promises library in Scala.concurrent and Monix. We will walk through several examples that demonstrate how to use Futures & Promises, and Monix. In addition, the talk compares and contrasts the similarities and differences between the two libraries. Furthermore, we will discuss some best practices in debugging asynchronous systems.