We give a formal specification and an implementation for a partitionable gr
oup communication service in asynchronous distributed systems. Our specific
ation is motivated by the requirements for building "partition-aware" appli
cations that can continue operating without blocking in multiple concurrent
partitions and reconfigure themselves dynamically when partitions merge. T
he specified service guarantees liveness and excludes trivial solutions; it
constitutes a useful basis for building realistic partition-aware applicat
ions; and it is implementable in practical asynchronous distributed systems
where certain stability conditions hold.