A brief introduction to distributed architectures