About the usage of the opaque field:
For my Erlang Memcached client (binary protocol only) I send multiple requests in batch over one TCP connection. I use the opaque field as a requestid; when I receive responses back from the server, I lookup those opaque values in a table and send the replies to whoever sent the command. This makes it possible to for example deduplicate requests and have silent requests that return no data (because when Memcached sends a response, I know all sequence ids before that were apparantly not interesting - thus silent)
