Do we actually need this outer interface? Or could we pull out the three `NoSql*` contexts to the top level?