Summary
SQL Server 2016 system-versioned temporal tables are a very nice feature you can start using immediately, without changes to applications. You can use them for auditing all changes in specific tables. You can retrieve the state of those tables at any point in time in history. You can find all states and changes in a specific period. SQL Server automatically updates the period in the current row and inserts the old version of the row in the history table as soon as you update the current row.
Nevertheless, there is still a lot to do in future versions of SQL Server. We still need better support for application validity times, including support for constraints and the optimization of temporal queries.