Akka と Scala を使用した実際のプロジェクトで初めて作業しています。DAO (メモリと mongo の 2 つの実装がある) のインターフェイスを設計しているときに、次の疑問が生じました。このような UserRepository の同期バージョンがあるとします
trait UserRepository {
def find(id: Int): Option[User]
def save(user: User): User
def delete(user: User): Unit
}
非同期バージョンは次のようになります。
trait UserRepository {
def find(id: Int): Future[Option[User]]
def save(user: User): Future[User]
def delete(user: User)
}
delete メソッドの戻り時間をどのように定義しますか? 将来[単位]? 未来[任意] 未来[無効]? 副作用が正常に適用された場合にのみ気にする非同期操作で返すのに最適な型は何ですか。返すものは何もありませんが、削除が正常に完了したかどうか、または onFailure コールバックを登録できる例外が発生したかどうかを知りたいです。