Transactions provide a consistent view of data to clients. Only writes from transactions that were successfully committed when a reader's transaction started are visible to readers. Because of this a reader and a writer will never conflict.
However, there are cases where stronger visibility guarantees are required. After committing a change and before continuing, a writer may want to ensure that there are no readers with in-progress transactions that have not seen the change.
In such a case either the readers will have to get a conflict when they commit, so that they retry and see the updated value, or the writer has to wait until all readers that have not see the change commit. This will ensure that after a given point of time, all readers will see the committed change.
Phoenix's secondary index build is a use case that would benefit from such a visibility guarantee - https://issues.apache.org/jira/browse/PHOENIX-2478.
It would be useful to have some constructs in Tephra that help clients get stronger visibility guarantees.