To understand the architecture of Azure Service Fabric (or A18F) we must first be aware of, and understand, the subsystems underneath it.
First we consider the Transport Subsystem. This provides secure point-to-point communication channels within a Service Fabric cluster and between a Service Fabric cluster and its clients.
Then you have the Federation Subsystem. This forms the foundation of a unified cluster and comprises provision of failure detection, leader election and consistent routing.
The Reliability Subsystem is really important. This manages state replication, failover and load balancing; necessities in a highly reliable and available subsystem.
Recall:
1. Failover is when a request is redirected to an alternate server
2. Load balancing is about distributing request processing across multiple servers
The Management Subsystem relates to managing applications. It has services to manage application binaries; deploying, updating and deprovisioning applications and monitoring application health.
The Hosting Subsystem is responsible for managing application lifecycles on a cluster node.
The Communication Subsystem is actually strangely named. It is more of a "service discovery" subsystem. With workloads and infrastructure separated, services may migrate from host to host. The naming service provided by the communication subsystem allows clients to discover and connect to service instances.
The Testability Subsystem is perhaps the most interesting. It can simulate various failure scenarios to help developers find and address design and implementation deficiencies