Atomic Group Communication is useful?

Group communications is a necessary part of any distributed system by the original definition in section 1. Atomic communication is needed for transactions or other things that require consistency etc. Do we need both together? Transparent fault tolerance will be crucial. Most people over the history of programming have paid little or no attention to the possibility that computers can fail while their programs are executing. There's no reason to think that will change. But the cost of unhandled failure will rise dramatically as programs interact more frequently and in far more complex ways than they do now. Applications need to be made fault-tolerant, but it has to be done transparently. Transactions provide a semi-transparent mechanism in this regard, but transactions are applicable only to a small fraction of the applications that people use, even today. And they can impose a large performance hit due to the hard global synchronization requirement at transaction completion.