An idea for Caching application wide data on the webApplication. thoughts?

Has anyone ever tried to use the webApplication object as a data cache for all connected clients?

My idea for speed is to collect most of the data needed in one hit and work with it in memory.
I use Cloudant which is a CouchDB database Saas.
But instead of every client having to download its own cache of data from Cloudant, I thought I could hold the data in a cache on the WebApplication object, Then all clients could access the one Cache.

In short I would grab the Data and hold it in a data cache custom object, on the webApplication.

Is this possible? Or more to the point a good idea.

I was thinking a thread could be set with a timer to synch the cache with the external db (cloudant)?

Problems I could see are …
where would that thread run? Ie the first client that logs onto the system would fire it off. But Then if that client logs off, can it fall to another client to take responsibility for that?

Ive never used weakRef before but I assume I may have to use those incase a client referencing the Data cache object on the webApplication object crashed?

Any way has anyone done anything like this or am I just asking for trouble.

Thanks for your comments

Cheers james