A computer system for performing transactions on data in a database comprising: a datastore comprising one or more databases, a transaction engine running on at least one service node, a timestamp engine and a timelock engine running on at least three dedicated timelock nodes (302, 312, 322), wherein the transaction engine is configured for: receiving a transaction to be performed on data stored in one of said databases; communicating, to a dedicated timelock node, a request for obtaining a timestamp for the transaction and for validating the transaction; and performing the transaction on the data based on the timestamp and lock validation by the dedicated timelock node; wherein the timestamp engine is configured for: receiving a request for a timestamp from the at least one service node; assigning, a distinct timestamp to the transaction, for processing in order transactions on the database, based on consensus among the dedicated timelock nodes; wherein the timelock engine is configured for: receiving a request to validate the transaction; assigning a lock on the timestamp for avoiding modifying of the data at the same time if, based on a review of one or more logs of granted lock requests, a consensus among the timelock nodes is that the data is not present in the one or more logs, the lock on the timestamp becoming invalid if not refreshed after a certain amount of time; and refreshing the lock while the transaction engine is performing the transaction on the data based on a request from the at least one service node, if a consensus among the timelock nodes is that the lock should be refreshed. a datastore comprising one or more databases, a transaction engine running on at least one service node, a timestamp engine and a timelock engine running on at least three dedicated timelock nodes (302, 312, 322), wherein the transaction engine is configured for: receiving a transaction to be performed on data stored in one of said databases; communicating, to a dedicated timelock node, a request for obtaining a timestamp for the transaction and for validating the transaction; and performing the transaction on the data based on the timestamp and lock validation by the dedicated timelock node; wherein the timestamp engine is configured for: receiving a request for a timestamp from the at least one service node; assigning, a distinct timestamp to the transaction, for processing in order transactions on the database, based on consensus among the dedicated timelock nodes; wherein the timelock engine is configured for: receiving a request to validate the transaction; assigning a lock on the timestamp for avoiding modifying of the data at the same time if, based on a review of one or more logs of granted lock requests, a consensus among the timelock nodes is that the data is not present in the one or more logs, the lock on the timestamp becoming invalid if not refreshed after a certain amount of time; and refreshing the lock while the transaction engine is performing the transaction on the data based on a request from the at least one service node, if a consensus among the timelock nodes is that the lock should be refreshed. wherein the transaction engine is configured for: receiving a transaction to be performed on data stored in one of said databases; communicating, to a dedicated timelock node, a request for obtaining a timestamp for the transaction and for validating the transaction; and performing the transaction on the data based on the timestamp and lock validation by the dedicated timelock node; receiving a transaction to be performed on data stored in one of said databases; communicating, to a dedicated timelock node, a request for obtaining a timestamp for the transaction and for validating the transaction; and performing the transaction on the data based on the timestamp and lock validation by the dedicated timelock node; wherein the timestamp engine is configured for: receiving a request for a timestamp from the at least one service node; assigning, a distinct timestamp to the transaction, for processing in order transactions on the database, based on consensus among the dedicated timelock nodes; receiving a request for a timestamp from the at least one service node; assigning, a distinct timestamp to the transaction, for processing in order transactions on the database, based on consensus among the dedicated timelock nodes; wherein the timelock engine is configured for: receiving a request to validate the transaction; assigning a lock on the timestamp for avoiding modifying of the data at the same time if, based on a review of one or more logs of granted lock requests, a consensus among the timelock nodes is that the data is not present in the one or more logs, the lock on the timestamp becoming invalid if not refreshed after a certain amount of time; and refreshing the lock while the transaction engine is performing the transaction on the data based on a request from the at least one service node, if a consensus among the timelock nodes is that the lock should be refreshed. receiving a request to validate the transaction; assigning a lock on the timestamp for avoiding modifying of the data at the same time if, based on a review of one or more logs of granted lock requests, a consensus among the timelock nodes is that the data is not present in the one or more logs, the lock on the timestamp becoming invalid if not refreshed after a certain amount of time; and refreshing the lock while the transaction engine is performing the transaction on the data based on a request from the at least one service node, if a consensus among the timelock nodes is that the lock should be refreshed.