Future یک نوع داده در کتابخانه Akka است که در Scala Standard Library نیز وجود دارد و Promise تقریبا معادل آن در Play Framework.
Future یک ساختار داده است که برای دریافت نتیجه یک عملیات همزمان (concurrent) استفاده می شود، Future این امکان را به ما می دهد که به نتیجه عملیات هم بصورت synchronously (همان blocking) و هم asynchronously (همان non-blocking) دسترسی داشته باشیم. البته کاربرد اصلی Future همان پردازش asynchronously است.
به عبارت ساده تر Future یک ارجاع (reference) به مقداری است که هنوز محاسبه آن تمام نشده است.
حالا رابطه بین Future و Promise چیه؟ وقتی تو Play دارین با یه سیستم بر پایه Akka بصورت asynchronous ارتباط برقرار می کنید، سیستم بر پایه Akka معمولا به شما بعنوان جواب Future بر می گرداند ولی شما در Play Framework نوع داده معادل Promise را دارید که به راحتی می توانید Future را به آن تبدیل کنید.