Microsoft just keeps knocking it out of the park lately.  The most recent announcement to catch my eye is that in SQL Server 2019, they are introducing Read-Write Secondaries for Availability Groups.  Meaning the end user doesn’t have to know the listener name, they can be pointing to a secondary server directly by name and, as long as it is setup correctly, it will always send a read-write connection to the primary replica.  This is a huge advantage because you no longer have to segregate your code into read and write calls and include ApplicationIntent=Readonly in order to scale your reads.  You can just round-robin connections between all replicas and the writes will always redirect to the primary.

Read more from Microsoft:
https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/secondary-replica-connection-redirection-always-on-availability-groups?view=sqlallproducts-allversions