A method of processing a payment instruction, comprising: receiving a payment instruction from a user, the payment instruction comprising payment details and an electronic signature; checking the electronic signature to confirm the authenticity and integrity of the payment instruction; wherein in the event that the authenticity and integrity of the payment instruction is confirmed, the method comprises, in a first processing stage: i) storing the payment instruction in a first storage unit using a relational database management system (RDBMS); ii) replicating the payment instruction and storing the replicated payment instruction in a second storage unit using the RDBMS, the second storage unit being functionally separate to the first storage unit so that the replicated payment instruction stored in the second storage unit is unaffected by deletion or corruption of the payment instruction stored in the first storage unit resulting from failure of the first storage unit; and iii) transmitting an acknowledgement signal to the user once the payment instruction has been successfully stored in the first storage unit and the replicated payment instruction has been successfully stored in the second storage unit; and, in a second processing stage, the second processing stage being after the first processing stage is completed: determining whether or not the payment instruction stored in the first storage unit is available; when the payment instruction stored in the first storage unit is available, extracting the payment instruction from the first storage unit and performing further processing on the payment instruction; and when the payment instruction stored in the first storage unit is not available, extracting the replicated payment instruction from the second storage unit and performing the further processing on the replicated payment instruction. receiving a payment instruction from a user, the payment instruction comprising payment details and an electronic signature; checking the electronic signature to confirm the authenticity and integrity of the payment instruction; wherein in the event that the authenticity and integrity of the payment instruction is confirmed, the method comprises, in a first processing stage: i) storing the payment instruction in a first storage unit using a relational database management system (RDBMS); ii) replicating the payment instruction and storing the replicated payment instruction in a second storage unit using the RDBMS, the second storage unit being functionally separate to the first storage unit so that the replicated payment instruction stored in the second storage unit is unaffected by deletion or corruption of the payment instruction stored in the first storage unit resulting from failure of the first storage unit; and iii) transmitting an acknowledgement signal to the user once the payment instruction has been successfully stored in the first storage unit and the replicated payment instruction has been successfully stored in the second storage unit; and, in a second processing stage, the second processing stage being after the first processing stage is completed: i) storing the payment instruction in a first storage unit using a relational database management system (RDBMS); ii) replicating the payment instruction and storing the replicated payment instruction in a second storage unit using the RDBMS, the second storage unit being functionally separate to the first storage unit so that the replicated payment instruction stored in the second storage unit is unaffected by deletion or corruption of the payment instruction stored in the first storage unit resulting from failure of the first storage unit; and iii) transmitting an acknowledgement signal to the user once the payment instruction has been successfully stored in the first storage unit and the replicated payment instruction has been successfully stored in the second storage unit; and, in a second processing stage, the second processing stage being after the first processing stage is completed: determining whether or not the payment instruction stored in the first storage unit is available; when the payment instruction stored in the first storage unit is available, extracting the payment instruction from the first storage unit and performing further processing on the payment instruction; and when the payment instruction stored in the first storage unit is not available, extracting the replicated payment instruction from the second storage unit and performing the further processing on the replicated payment instruction.