Un sistema distribuido es un software cuyos componentes están distribuidos en una red de computadoras y colaboran mediante el intercambio de mensajes. Sus características incluyen la falta de un reloj global, la concurrencia y la independencia ante fallos, pero presenta desventajas como problemas en la entrega de mensajes. Ejemplos incluyen motores de búsqueda y juegos multijugador, utilizando patrones como request-reply o publish-subscribe.