The behavior of resolvers is implementation-dependent.
Microsoft Windows 10 for example, queries all name servers in parallel. The client will use the first server to respond, even if it is a negative response.
If a client queries name servers sequentially, it will do so, and time out if a response is not received and proceed to the next configured name server. When a response is received, the query is finished, even if it is a negative response.
What will not occur is the client will not wait for all name servers to respond. The client will not use multiple responses, only the first response.
If Amazon has 100 name servers, and only one has a resource record, and a client queries one of the other 99 name servers, it will receive a negative response for the resource record.
https://superuser.com/questions/969171/multihomed-windows-10-dns-resolution-timeouts/970322#970322
in practice, I have seen that I will get the TXT record even though it is not on all nameservers.
If you have questions about a record, feel free to share the record that reproduces the behavior, including client details, so we can reproduce it.
More information:
Microsoft introduced parallel name resolution for A/AAAA records due to numerous incidents where name servers had been configured incorrectly. This usually caused major problems when non-primary name servers were queried due to the primary being unavailable. The iterative resolution process has timeouts, and each level may have different timeouts, and a cumulative timeout. There are also rules for using results from multiple network adapters. This led to scenarios where some organizations had configured four or five name servers for purposes of high availability. Unfortunately the process times out after the third server, so the DNS strategy was invalid, the disaster recovery strategy was invalid, and it caused other problems of its own.
When using nslookup, to simulate the behavior of a resolver and perform an iterative query against a specific name server, use the -norecurse
switch.
https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/nslookup-set-recurse