Merge branch promises into multi-backend