Message based web applications
Every time I encounter a hard software problem I usually end up using a message queue to solve it. Workers grab messages from the queue and process them in a controlled manner. Whatever chaos there was before is now under control.
This idea dovetailed with my recent interest in non-blocking servers and adopting a callback mentality when developing the original FANS.FM codebase in node.js. My software mind has been trending to the asynchronous lately so why not take it a step further.
A message based system could be comprised of worker scripts written in whatever language you'd like. The queue is language neutral and as long as the messages were in a standard format any script could handle the work to be done. This means I could mix node.js, Ruby and Java seamlessly within the same system.
Work can be guaranteed. A true MQ system will offer message acknowledgement features to ensure that a message was processed by a worker. If a worker fails, is restarted or killed the messge will be requeued and not lost.