A method (300; 400) for performing zero downtime database updates in a database environment, the method comprising: directing (151; 251; 310) database connections, for write operations, from server applications to a first copy of a database (140; 240), wherein the first copy of the database (140; 240) is being replicated (152; 252) to a second copy of the database (142; 242), wherein the second copy of the database (142; 242) is in a read-only mode, and wherein the server applications are running a first code version; maintaining a first set of entries in a memory cache (221, 223) for database records returned in the database connections when the server applications are running the first code version, the first set of entries including an indication of the first code version; deploying a new code version of the server applications, wherein the new code version is inactive; stopping replication (153; 253; 320; 430).from the first copy of the database.(140; 240) to the second copy of the database (142; 242); performing database system changes (153; 253; 330; 440) to the second copy of the database (142; 242), the database system changes comprising database schema changes for the second copy of the database (142; 242); after performing the database system changes (153; 253; 330; 440), resuming replication (254; 340; 450) from the first copy of the database (140; 240) to the second copy of the database (142; 242); once the first and second copies are in sync, switching the database connections (154; 255; 350; 460), for write operations, from the server applications to the second copy of the database (142; 242); stopping replication (155; 360) from the first copy of the database (140; 240) to the second copy of the database (142; 242), and starting replication from the second copy of the database (142; 242) to the first copy of the database (140; 240); and after starting replication from the second copy of the database (142; 242) to the first copy of the database (140; 240), activating the new code version of the server applications that are used by client and server devices to access the database; maintaining a second set of entries in the memory cache (221, 223) for database records returned in the database connections when the server applications are running the new code version, the second set of entries including an indication of the new code version; wherein the database remains accessible (125; 225) throughout the zero downtime database update. directing (151; 251; 310) database connections, for write operations, from server applications to a first copy of a database (140; 240), wherein the first copy of the database (140; 240) is being replicated (152; 252) to a second copy of the database (142; 242), wherein the second copy of the database (142; 242) is in a read-only mode, and wherein the server applications are running a first code version; maintaining a first set of entries in a memory cache (221, 223) for database records returned in the database connections when the server applications are running the first code version, the first set of entries including an indication of the first code version; deploying a new code version of the server applications, wherein the new code version is inactive; stopping replication (153; 253; 320; 430).from the first copy of the database.(140; 240) to the second copy of the database (142; 242); performing database system changes (153; 253; 330; 440) to the second copy of the database (142; 242), the database system changes comprising database schema changes for the second copy of the database (142; 242); after performing the database system changes (153; 253; 330; 440), resuming replication (254; 340; 450) from the first copy of the database (140; 240) to the second copy of the database (142; 242); once the first and second copies are in sync, switching the database connections (154; 255; 350; 460), for write operations, from the server applications to the second copy of the database (142; 242); stopping replication (155; 360) from the first copy of the database (140; 240) to the second copy of the database (142; 242), and starting replication from the second copy of the database (142; 242) to the first copy of the database (140; 240); and after starting replication from the second copy of the database (142; 242) to the first copy of the database (140; 240), activating the new code version of the server applications that are used by client and server devices to access the database; maintaining a second set of entries in the memory cache (221, 223) for database records returned in the database connections when the server applications are running the new code version, the second set of entries including an indication of the new code version; wherein the database remains accessible (125; 225) throughout the zero downtime database update.