The Process Group Approach To Reliable Distributed Computing Kenneth P. Birman Paper's Contribution: Essentially a marketing pitch for the ISIS Toolkit which is an application programming interface (API toolkit) that provides communication channel mechanisms to aid programming for distributed process group applications, including features such as correct communication ordering, fault tolerance, data replication, etc... Paper's Critical Ideas: Actually there's very few new ideas, in terms of distributed theories in this paper, instead it builds upon the theories of previously published works to provide an API toolkit, ISIS, that applications programmers can use to develop their distributed applications. One of the features the ISIS toolkit provides is correct message delivery ordering, and the algorithms used to achieve this were built upon Lamport's work on causal ordering of events in distributed systems, especially with regards to ISIS's use of "virtual synchrony" that allows for higher performance than "close synchrony" since it takes advantage of not requiring processors to block for concurrent messages that don't have causal relationships. This is especially important in heterogeneous environments where you don't want a set of "fast" processors continually waiting for a slow one. The paper investigates many of the problems that plague distributed applications are presented and touts how ISIS helps programmers deal with them. In an interesting example it presents a security brokerage distributed application that demonstrates many of the crucial issues that a distributed application must consider, such as unreliable communication channels, state transfers, fault-tolerance and recovery. Their fail-stop model, of not allowing a computer that has experienced a failure to try to recover its state, but rather must rejoin the process group from the "start" state, is certainly a nice simplification, but could be an oversimplification if failures aren't rare. Paper's Flaws: My personal peeve about this paper is the fact it never defines what the ISIS acronym stands for. I hate that. But beyond that this paper doesn't bring a whole lot to the table other than acting "coming out" party for ISIS. The paper may have been more interesting if it delved into some examples of whether these communication channel mechanisms actually produce success, are efficient in real applications Relevance to modern systems: Historically one of the largest road-blocks to further widespread adoption of distributed systems and parallel processing has been the subtle issues, relating to ordering and synchronization, involved in application development, making these types of systems too difficult and costly to implement reliably. By providing programmers with an easy to use set of tools that help manage these issues for them, there's a good chance the barriers would be removed and a new era of prevalent distributed/parallel programming would ensue. ISIS is an attempt to be the easy-to-use toolkit for distributed application development.