The only significant issue I've run into so far with using elasticsearch as a primary data store is the indexing delay when you index a new document. Elasticsearch is a "near" realtime search engine...the "near" qualifier is necessary because there is up to a 1-sec delay after you index a document before it will be found during a search.
Here's a link to the relevant portion of the elasticsearch guide:
Near real-time search in elasticsearch
This was an issue in a web application I built that contains a page that lists users. My scenario was the admin clicked a "new user" button on a user list page and he was then brought to another page to create the user. When the admin saved the user document, he was redirected to the list page, but the newly created user did not show up because of elasticsearch's indexing delay.
The elasticsearch guide says you can manually refresh the index, but says not to do it in production.
...don’t do a manual refresh every time you index a document in production; it will hurt your performance. Instead, your application needs to be aware of the near real-time nature of Elasticsearch and make allowances for it.
I ended up refreshing the index anyway because creating new users is a very rare occurrence in my app, but it's not a very good solution.
I posted a question a couple of months ago asking how other people get around this issue:
How to deal with Elasticsearch index delay
The answer to that question had a suggestion I liked. Basically the author suggests inserting the record into the list manually using the data you submit instead of waiting for the return from the server. That should work as long as you don't rely on server generated fields.
Ultimately though, you should not encounter this issue with a database like Couchbase.