A unified framework for transparent parallelism and fault-tolerance in distributed systems