It can also be implemented as a pure function without side-effects if you provide current time as a query parameter.
Reliable communication over the network and availability issues are different concerns.
Though request idempotency can help with retries for command/mutations.
Queries are usually nullipotent, so they're can be simply retried.
http://webcache.googleusercontent.com/search?q=cache:_QnG_r4...