In Scala, a Future and a Promise have the following differences:
- A Promise is used to compute a value, whereas a Future is used to read that value
- A Promise is used write the value, whereas a Future is a read-only object
- Once a Promise is completed, we cannot change its value, it becomes immutable
- Once a Future is completed, we cannot change its value, it becomes immutable
- A Future is for querying data and a Promise is for writing data
- In simple words, a Future is the getter and a Promise is the setter