Your options are using observe (and block the view call until the durability requirements are met) or perhaps using a meta-doc to store a set of keys. The meta-doc concept, should give you what you need, you’ll just have to do some data modeling to ensure it fits your use case.

Personally, I would use the meta-doc. It supports your requirements for “get the list of all inserted elements in the order of insertion including the last inserted one” and you won’t have to know the key you inserted in the first step, it will be: it’s simply the last key in the list stored under a shared “primary” key. Also, being K/V based it will have better performance than using views.

First I want to thank you for the answer and trying to help me in this situation

Solution 1: use observe.
Is not very good because it can block my write operation for a long time to wait for the view to update. But my application uses write operations all the time. And there is no possibility to force the view to update.

Solution 2: meta-doc
The problem is that at least 2 clients will work in parallel having 2 distinct instances of my application so the main memory is not going to be shared between them. And I need the last descriptions at the level of the database.

So we need something like “select * from database” without using views

I am starting to think that Couchbase is simple not optimized for this kind of scenario. It works perfect for other scenarios.