title: BigTable: When should I enable Single-Row Transaction?
body: <p><a href="https://cloud.google.com/bigtable/docs/app-profiles#single-row-transactions" rel="nofollow noreferrer">Cloud Bigtable docs on Single-row Transactions says:</a></p>
  
  <blockquote>
    <p>Cloud Bigtable also supports some write operations that would require
    a transaction in other databases:</p>
    
    <ul>
    <li><p>Read-modify-write operations, including increments and appends. A
    read-modify-write operation reads an existing value; increments or
    appends to the existing value; and writes the updated value to the
    table. </p></li>
    <li><p>Check-and-mutate operations, also known as conditional
    mutations or conditional writes. In a check-and-mutate operation,
    Cloud Bigtable checks a row to see if it meets a specified condition.
    If the condition is met, Cloud Bigtable writes new values to the row.</p></li>
    </ul>
  </blockquote>
  
  <p>So, if I understand correctly, if I use "Read-modify-write" or "Check-and-mutate" operations, enabling single-row transactions is required.</p>
  
  <p>Those operations are API methods like <a href="https://cloud.google.com/bigtable/docs/reference/data/rpc/google.bigtable.v2#google.bigtable.v2.Bigtable.CheckAndMutateRow" rel="nofollow noreferrer">CheckAndMutateRow</a>, right?
  So what if a program uses that method and single-row transactions is not enabled? Will the app fail? Am on the right direction?</p>
  
  <p>My goal is to understand how, when and where (in an app) the single-row transaction setting on the app profile is being utilized.</p>
  
  <p>Thanks!</p>
  
  <p>Gabriel</p>