End-to-end transactions in three-tier systems
Dianlong Zhang, Walter Zorn · 2002
Many modern enterprise applications follow the three-tier architecture. Typical three-tier systems have some nice properties: clients are thin, application states are stored in a database, and the middle servers are stateless. This makes three-tier systems well scalable and manageable. However, it is challenging to implement end-to-end reliable and safe transactions for such applications without violating their nice properties. We present a pragmatic end-to-end transaction protocol which ensures that every issued request will be processed exactly-once by the server(s). The idea is to use client log-based recovery and application server replication. The application server remains stateless; all replicas play the same role and can serve client requests. Therefore, the system is well scalable and the failover is fast.