CouchDb and SaaS

I've noticed continuing buzz around hosted solutions and the Software as a Service (SaaS) model, web based business applications that are hosted and maintained by an service provider. Salesforce.com is the canonical example, they've been very successful providing hosted CRM and are expanding their offerings, Microsoft has launched Office Live and there are rumors of a Google "Office" killer in the works.

The idea behind SaaS is that businesses don't want software, they want solutions. So instead of expensive software licenses, servers and support staff, they buy subscriptions to online services that provide the same functions. Businesses don't pay for software, they pay for solutions. SaaS also has the advantage of access from anywhere on the internet, all you need is an good connection and a browser and you're in business.

So does the hosted SaaS paradigm make sense for businesses? It certainly makes sense from an "economies of scale" point of view, since business need not worry about building infrastructure, purchasing systems and hiring technical staff. Businesses just pay for access and the provider does the rest. But there is one serious downside to consider, even with the very best providers.

Imagine a world class hosted application provider. They'll have state of the art data centers with clean power, battery backup and diesel generators, excellent training and professionalism of support and admin staff, heavy investment in engineering, integration and testing of complete systems, with redundancy of disks, routers and machines and even entire data centers.

Q: How reliable will this provider's hosted web applications be?

A: Only as reliable as your internet connection.

When you've remotely outsourced key business applications, any network problem can mean your whole business is effectively paralyzed.

The network is the "elephant in the room" of hosted applications. Outages, timeouts, DNS problems, dropped signals, etc, any of these can render hosted applications and the data contained completely useless and bring business to a grinding halt. And the hosting providers can do nothing about it.

Why can't hosted business applications and all the data contained within still be available even when the internet isn't? Unless SaaS can provide this, there aren't many businesses that can actually afford it, the chance and cost of failure is too high.

So it's back to the same old roll-your-own business infrastructure, cobbling together networks, hardware and applications and hiring staff to keep it running. It's expensive, but it's cheaper than not having access to your applications and data.

Of course, I just so happen to know of a solution this quandry: CouchDb. CouchDb is a distributed database system I'm building. Web applications built on it allow shared, distributed access to data, whether users be online or offline. CouchDb is ideal for document oriented and collaborative applications.

Using a CouchDb back-end, SaaS hosts can provide tested and integrated applications, access from any internet connection, updates and bug fixes, regular backups, highly reliable infrastructure, professional admin and support staff and everything else you expect from a good hosted application provider, AND ALSO give you the ability to replicate the application and data locally on your own office servers or even right on your laptop, and use it as though you were always connected to the internet. New functionality and bug fixes replicate automatically from the application provider.

Since all the updates and changes are incrementally replicated to the SaaS provider, you don't need expensive machines, RAID storage or regular backups to get reliable applications and data storage, the service provider already has it covered. If your local machine, be it an office server or laptop computer, bites the dust, you can simply buy a new one and replicate the application and data back down from the provider to the new machine. The cost of hardware and the business costs of its failure gets much cheaper, since the provider already gives you all the reliable back-end infrastructure and acts as a highly available backup in case of local failure.

And you still get the benefit of being able fire up a browser and get to your data so long as you have an internet connection.

Anyway, CouchDb + SaaS == perfect match

In 1995 I remember "always on and everywhere" internet access was just around the corner, everyone said so, including me. Well, it's almost 2007 and it still hasn't happened.

Maybe someday internet access will be fast, reliable and ubiquitous enough that people can safely run their whole frickin' business using online-only SaaS. Until that happens, until people no longer need local and offline access to their applications and data, SaaS will continue to be a niche industry, always on the verge of being huge.

Salesforce.com seems to have realized this when they bought Sendia for $15 million in April and created AppExchange Mobile. What does AppExchange do? It's a development platform and the second feature listed is "Disconnected access: Information is available even when the network is not".

Posted December 26, 2006 6:12 PM