When we talk about version control, the first thing that comes to our mind is application source code versioning, which is a practice that we are well accustomed to. But with source code versioning, we should version control the database, the build artifacts, the dependencies, and everything that is involved in the application. This ensures that every aspect of the application can be historically tracked through the single origin that is the repository.