1 Introduction
1.1 Synchronization Errors
1.2 Scope of the Survey and Related Works
1.3 Coding with Synchronization Strings
1.4 Organization of the Paper
2 Code via Indexing
2.1 Approaching the Singleton Bound: Technical Warm-up
2.2 Near-Linear Time Codes
2.3 List Decoding: High Rate Codes
2.4 List Decoding: Optimal Resilience via Concatenation
3 Synchronization Strings
3.1 Existence
3.2 Online Decoding for Synchronization Strings
3.3 Construction: Long-Distance Synchronization Strings
3.4 Infinite Synchronization Strings
3.5 Local Decoding for Long-Distance Synchronization Strings
3.6 Edit Distance Indexing and Near-linear Time Repositioning
4 Further Applications of Synchronization Strings
4.1 Codes for Block Transpositions and Replications
4.2 Channel Simulation
4.3 Interactive Communication for Synchronization Errors
4.4 Binary Synchronization Codes
4.5 Document Exchange
4.6 Linear Insertion-Deletion Codes
4.7 Coded Trace Reconstruction
4.8 Coding for Binary Deletion Channels and Poisson Repeat Channels