We currently use the Nominatim service to do address lookups. We want to store the OSM data in our own servers as our usage gets higher.
How do I calculate the address of a given coordinate, like how Nominatim does?
I'd suggest just using Nominatim installed locally. See installation instructions
That will give you minimum integration risk, and an equivalent result.