WiredTiger offers standard ACID-style transaction support where modifications happen at snapshot isolation and subsequently become durable. (Readers not already familiar with these concepts may wish to see Tutorial: transactions and ACID properties for a brief discussion of ACID and Tutorial: isolation levels for a brief discussion of isolation levels.)
There are three approaches to writing transactional programs in WiredTiger:
The first two approaches are relatively simple and have APIs which will be familiar to database developers. The principal difference is that in the second approach, applications may need to enclose operations in explicit transactional API calls and must additionally configure and manage the log files required for commit-level durability. The third approach is complex, has non-standard APIs, and requires more database knowledge to successfully build applications. The functionality and programmatic changes in each approach are additive. If this is your first database application, building a complex application by starting at the first approach and iterating to a complete application is recommended.
We will discuss these approaches in order, from the simplest to the most complex.
If this is your first WiredTiger application, please read Durability overview for a discussion of WiredTiger durability models, so you can select the application architecture that is appropriate for your needs.