I would prefer the second, particularly as I think the caching solution lends itself to mirroring, which would also improve availability.
I think this conclusion is wrong: Jim already has a mirror infrastructure that anybody can run, without the need of running that on the central server.
- From my complete ignorance of the underlying architecture: the polling solution would stay pretty current if there were an extremely cheap way to ask for the latest "transaction ID" on the cheeseshop, or if the query could fetch only registrations newer than the last poll time. Are such queries possible over the XML-RPC interface?
Yes; you can ask for all changes since a certain UTC time. People shouldn't invoke that every UTC second, though - once a minute is fine. Regards, Martin