In Lucent there are 2 versions of each document at the same time. The Live version and the Demo version. This feature gives you the ability to manage your content without affecting the live website and when you are ready you can publish your changes.
Each time you save a document only the Demo version will get updated. When you publish a document both the demo and the live version will get updated. Simple as that.
If you have revisions enabled, each time a document is published a new revision is created. Revisions are not created when you just save a document.
Locales
In case you are using more than one locales the same rules apply. All translations are part of the document. If you want to have some translations published and some other translation not published, you will have to create a custome status solution.
Let's say you have a document in English as the main language and you want to translate it in French but you don't have the Spanish translation yet. There is no native way to know which translation is completed and which is not. So when you publish the document with the French translation, the Spanish incomplete translation will get published too.
The fix is pretty easy. You can create a boolean field, called Translation Complete and then on your application you can check if this is true or false and decide if you will show the content or not.
API Keys
For security reasons you can't access the Demo content when using the Live Key and vice-verca.
When you are using the Core API though you have complete control on your content and you can switch between demo and live documents with the same api key.