The paper introduces a new algorithm for maintaining replicated data, where each copy of a file is assigned a number of votes. Transactions require a read quorum of $r$ votes and a write quorum of $w$ votes, ensuring that every read quorum intersects with every write quorum. Version numbers help determine which copies are current. The algorithm guarantees serial consistency, supports temporary copies, and can be implemented in an application system called Violet. Key features include the ability to control reliability and performance by adjusting $r$ and $w$, and the introduction of weak representatives for temporary copies. The algorithm is compared with previous solutions and demonstrates improved performance and flexibility. The implementation in Violet shows its practicality in a decentralized data management system.The paper introduces a new algorithm for maintaining replicated data, where each copy of a file is assigned a number of votes. Transactions require a read quorum of $r$ votes and a write quorum of $w$ votes, ensuring that every read quorum intersects with every write quorum. Version numbers help determine which copies are current. The algorithm guarantees serial consistency, supports temporary copies, and can be implemented in an application system called Violet. Key features include the ability to control reliability and performance by adjusting $r$ and $w$, and the introduction of weak representatives for temporary copies. The algorithm is compared with previous solutions and demonstrates improved performance and flexibility. The implementation in Violet shows its practicality in a decentralized data management system.