The GORDA Architecture and Programming Interface (GAPI) allows porta- ble replication protocols to be easily implemented and reused with different database management systems. It is designed to be provided either na- tively by the database server or by a server wrapper. The included functionality supports a variety of replication protocols, both master-slave or multi-master, synchronous or asynchronous. It should also be useful to build other data management tools. The GAPI uses reflection, as abstract transaction processing concepts appear as objects in the target data model and programming language, and is based on widely used and tested design patterns and APIs (e.g. JDBC).