Atomic symlink swaps
When changing symlinks, particularly as part as a deployment. The goal is generally to eliminate downtime. We often refer to these an atomic deployments.
Just because you are using a symlink those, doesn't necessarily mean your deployment is atomic. Lets dive a bit deeper into this.
By definition, in concurrent programming an operation would be considered atomic if it appears to the rest of the system to occur at once without being interrupted.
Assuming for simplicity we setup the following symlink:
ln -sf release current
Listing that directory as expected would show
ls -lah
current -> release