Update functions takes Option[oldValue] and return Try[Option[newValue]] For example: Insert: None => Success(Some(newValue)), but Some(oldValue) => Failure() Update: Some(oldValue) => Success(Some(newValue)) Delete: Some(oldValue) => Success(None), but None => Failure() ConditionalUpdate: Some(oldValue) => Success(Some(newValue)) or Failure(), depending on whether oldValue satisfied some desired conditions
Update functions takes Option[oldValue] and return Try[Option[newValue]] For example: Insert: None => Success(Some(newValue)), but Some(oldValue) => Failure() Update: Some(oldValue) => Success(Some(newValue)) Delete: Some(oldValue) => Success(None), but None => Failure() ConditionalUpdate: Some(oldValue) => Success(Some(newValue)) or Failure(), depending on whether oldValue satisfied some desired conditions