# Software Architecture: Interfaces

+ **`RawKV API`**
  + `Get`, `BatchGet`
  + `Scan`, `ReverseScan`
  + `Put`, `BatchPut`
  + `Delete`, `BatchDelete`, `DeleteRange`
  + **`CompareAndSwap`**

+ **`TxnKV API`**
  + `Get`, `BatchGet`
  + `Iter`, `IterReverse`
  + `Set`
  + `Delete`
  + **`Begin`**, **`Commit`**, **`Rollback`**
  + **`LockKeys`**
![`smart`](TiVKClientInterfaces_aa_001_20221027.png)

------------------------------------------------------------
The bold interfaces:
- `CompareAndSwap`: `RawKV` only
- `Begin`, `Commit`, `Rollback`, `LockKeys`: `TxnKV` only
