Multiple software components deployed on multiple computers, but run as a single system ... These simple words sound like a promise to a complex and limitless world. But is it so complex than that to design and develop such systems?