Have you heard about this new Cloud stuff? It's a new programming model that is introduced with Microsoft Windows Azure, Amazon's EC2, and other large data center providers and it's going to radically change the way that we approach programming. Among some of the key changes to recommended programming practices are:
- Make sure to use coarse grained interfaces. When calling across logical tiers, assume that you will at best be crossing processes and very likely be crossing machine boundaries, so make as few calls as practical to get the job done.
- Design long running processes so that markers or some similar mechanism can give you the necessary information to resume processing instead of double-processing.
- Use of queue-based processing will allow for either scaling out by adding more processors or, when possible, allow load to be leveled over time with fewer processors. This will also allow components or subsystems to function while others are not running or are running at diminished capacity.
- State in our services should be avoided if at all possible
Come to think about it, maybe this is that new Microsoft Transaction Server thing I've been hearing about.
The fundamentals of good programming don't change when we move to the cloud - they're just repackaged and brought back into the spotlight. You may not be ready now or even ever to take your apps to the cloud, but what's wrong with programming now like you're already there?