backup history using availability groups
We made a SSIS package that collect msdb history from each instance and centralize it on a "DBA" database. We then "purge" the local msdb from each instance. 

That way, we can query the centralize DB for any backup history and it prevent every msdb from getting to big.