Why Domain Settings Do Not Take Effect Immediately
A domain is a name which points to various resources on the internet. The most common usage of domains are as website addresses (eg www.cadzow.com.au) or email ([email protected]). In both cases the domain is cadzow.com.au.
Domains basically have two sets of records to make them work. The first record is in a huge database which is replicated across thousands of systems. The domain record consists of the contact/owner information for the domain, and the name servers which provide the second set of records.
When a system needs to interact with a domain, it queries the first database to fetch the name servers, and then queries the name servers for the rest of the records. In the name servers are specific information about resources. The most common are “A” records which might point to a website address, and “MX” (mail exchanger) records which indicate where email is to be sent.
If the name servers need to be changed, that is done by the registrar that manages the domain. This is called delegation. This process also happens on new domains. Because this change needs to replicate to all the other systems around the world, it can take some time, usually a few hours but sometimes up to 24 hours. During this period, if someone queries the domain record, they might be given the new name servers or the old ones, and depending on how that has been managed, it might mean the website is inaccessible or emails are not delivered. This can create some odd effects as certain things work from one location but not another. Therefore redelegating a domain should be done with care.
If the records on the domain are changed, this is much quicker, but still not instananeous. This is because when a system queries a domain record, it remembers (caches) the result for a period of time, usually 1-4 hours. This is so systems do not need to keep querying the same records dozens or hundreds of times. But it does mean that systems will not notice the record has changed until the timeout period ends. For example, if the website address is being changed, users may still try visiting the old address which may now be inactive. After a while the record will expire and their system will fetch the new record.