I'm not totally convinced that we need this provider infrastructure, or that it's going to end up being the right way to do this. (For example, it might be that we want other "providers" to plug in at the Connect level as middleware.) That said, it's a fairly simple bit of code right now, so I don't have an objection to leaving it in as a starting point. But we should probably add a comment here that this is still an experimental/internal API and that outside extension developers shouldn't use it yet, as we might change this stuff around once we get to other use cases where we might want different providers.