When logged in as a Drafter:
The user can create new articles, but the articles are put into an unpublished state.
When the unpublished node is saved, a new workflow node is created and can be accessed by clicking on the workflow tab where the edit tab used to be.
Drafters do not have access to the node edit pages on original nodes; only workflow nodes.
The drafter can then change the status of the workflow node (statuses include: draft, submitted, published).
Drafters can only change the status to submitted.
Upon saving the node with a submitted status, an email is sent to the approver and any updates are saved in the workflow log for the original node.
Existing nodes can begin the workflow process as well by clicking on the workflow tab and then clicking on a button "Begin Workflow".
Upon clicking "Begin Workflow" a new workflow node is created using the original nodes field contents.
The drafter can then make their changes, provide a note in the workflow log, and change the status to submitted.
When logged in as an Approver:
The approver has access to a workflow list (a list of nodes that are in workflow).
He/she can view the workflow node and proofread the content and change the status either to draft or published.
If they change it to draft, an email is generated to the editor along with any comments from the workflow log.
PoormansMongoDB has nothing to do with MongoDB. It just provides an alternative field storage backend, which stores fields serialized on the entity table.