Couldn't you cache the reads? Not many usages really require real-time from their data store.
Not that hard. Like 10 lines of code to get a decentish cache going.
They're internal tools, but big ones. And I'm surprised too. You won't hit too much resistance doing things the well-supported ways, but for some reason there's no well-supported way to run a cache.