Docker Swarm mode uses a manager-worker architecture with high availability for managers and workers. Managers are administrator-facing, and you use the active manager to manage the cluster and the resources running on the cluster. Workers are user-facing, and they run the containers for your application services.
Swarm managers can also run containers for your applications, which is unusual in manager-worker architectures. The overhead of managing a small swarm is relatively low, so if you have 10 nodes and 3 are managers, the managers can also run a share of the application workload (but in production you need to be aware of the risks of starving your managers of compute if you're running lots of application workloads on them).
You can have a mixture of Windows and Linux nodes in the same swarm, which is a great way to manage mixed workloads...