I have some of your answers, but also a question. Why use SQL2016 a) when it is almost out of support, b) when SQL2017 adds automatic initialisation and SQL2019 adds the ability to do AO without needing a Windows cluster or a domain. The more recent versions add useful functionality that definitely makes managing AO easier. As you are asking about design decisions IMHO you should be looking at SQL2022 functionality as you are unlikely to get to production implementation before SQL2022 is generally released.
1) If your master gets corrupted by storing valid but unwanted data via INSERT or UPDATE this will be (as you should expect) accurately replicated to all secondaries.
If your master gets corrupted by file-level changes that are done outside of SQL then it will not get replicated. AO replicates the effect of SQL statements, not file-level data. However, there is very little software around that can update open files, so while SQL Server keeps your files open they should be safe from most file-level attacks. If the attack causes SQL to crash then the DB files could get corrupted by an attack, but SQL is down so no data would be replicated.
2) Yes the servers need to be in a Windows cluster for AO in SQL2016
3) Yes there are problems in taking a node offline. A marker is maintained for the oldest not replicated log position and this will not get updated if a node is offline and replication to it is paused. The impact is that DB log files will grow.
The need for a periodic refresh is typically best met by restoring a backup. A (perhaps poor) alternative is to use a Distributed Availability Group that is set up while you synchronise and dropped for the rest of the week.
4) I do not know of any middleware that could mediate between master and target when you use an AG.
Original author: https://github.com/SQL-FineBuild/Common/wiki/ 1-click install and best practice configuration of SQL Server 2019, 2017 2016, 2014, 2012, 2008 R2, 2008 and 2005.
When I give food to the poor they call me a saint. When I ask why they are poor they call me a communist - Archbishop Hélder Câmara