No N1QL was involved that needed to be ported/re-architected?
N1QL was our primary use case for using Couchbase at my last position and it worked wonderfully (though at less than half your scale).
For straight key operations, the overhead of all the JVM stuff on couchbase seems like a lot, especially when considering the alternative amount of K/V stores these days.
Glad to hear Aerospike turned out well. Been keeping an eye on them over the past few years.