What About SaaS and Offline Use?
Both conversations with various individuals as well as recent news of goodies like Google Gears and Microsoft’s Silverlight made me think long and hard about SaaS and ‘offline mode’ (for lack of a better term). Starting at the mile high view, one thing I noticed was a clear distinction between intended and unintended disconnectedness. What’s the difference and is it important? To answer the second question: yes, it is important! Now about the difference - it’s all about the data!
The scenario where one intends to go offline is a much better scenario than unintended. Intentional offline is best described using the salesperson scenario: “I’m getting on a plane in 2 hours, and it’s a 5 hour flight, I’ll be offline.” In this scenario, the salesperson may have a predetermined notion of what data they will need from their sales automation SaaS app so they can accomplish some work during the 5 hours. The explicit intent allows the salesperson to make decisions about the needed data like: “I need all of my records for the past 3 days” and a smart ‘offline mode’ could (within reason) allow that data and any dependencies to live on the client side until it’s synchronized back up after the flight.
Unintended offline mode frankly sucks. Some people want a SaaS app that can maintain a subset of functional integrity in the event that a squirrel chews through some LAN cable. Now, while feasible, a good offline mode in this scenario is much more difficult to come by. It’ll require careful choice of caching strategies depending on use case, as well as constant updating and synching.
Has anyone implemented an offline mode (intentional or not) for a SaaS or client/server app? If so, what sort of headaches have you bumped into? If not, are you planning on rolling out this sort of functionality?

(3 votes, average: 4.67 out of 5)


This is a great question and I’d be interested to hear people’s methods of handling this. We had a client that ‘chose’ our competitor b/c they said they could work offline. We are struggling to understand how this is truly possible, or if it’s work around with a custom built plug-in with uploading capabilities.