https://github.com/bitcoin/bitcoin/pull/13033/files
```
9b2704777 [doc] Include txindex changes in the release notes.
ed77dd6b3 [test] Simple unit test for TxIndex.
6d772a3d4 [rpc] Public interfaces to GetTransaction block until synced.
a03f804f2 [index] Move disk IO logic from GetTransaction to TxIndex::FindTx.
e0a3b8003 [validation] Replace tx index code in validation code with TxIndex.
8181db88f [init] Initialize and start TxIndex in init code.
f90c3a62f [index] TxIndex method to wait until caught up.
70d510d93 [index] Allow TxIndex sync thread to be interrupted.
94b4f8bbb [index] TxIndex initial sync thread.
34d68bf3a [index] Create new TxIndex class.
c88bcec93 [db] Migration for txindex data to new, separate database.
0cb830324 [db] Create separate database for txindex.
```
After that:
```
PR15410
fab6b07c16 test: txindex: interrupt threadGroup before calling destructor (MarcoFalke)
PR 14071
faf4a9b674 qa: Stop txindex thread before calling destructor (MarcoFalke)
PR 13106
9cb6cdc Simplify semantics of ChainStateFlushed callback (Matt Corallo)
50b6533 scripted-diff: Rename SetBestChain callback ChainStateFlushed (Matt Corallo)
```