A method for asynchronously replicating data from a primary system to a secondary system, the method comprising: the primary system receiving a sequence of host writes from a host system, the host writes including address information and write data; the primary system recording sequential positions of the host writes; the primary system recording sequential dependencies of the host writes based on the sequential positions; the primary system completing the host writes and then acknowledging the completed host writes to the host system; and the primary system sending the host writes, the sequential positions, and the sequential dependencies as write requests to the secondary system, the method being characterized in that: recording the sequential positions and recording the sequential dependencies comprise: for each host write, the primary system: issuing a ticket to the host write, the ticket comprising an assigned ticket number and an assigned highest completed ticket number, the assigned ticket number comprising a current value of a ticket number at the primary system, the assigned highest completed ticket number comprising a current value of a highest completed ticket number at the primary system; incrementing the ticket number after issuing the ticket; and storing the address information and the ticket, in a ticket log; the primary system storing the write data in a data log; for each completed host write in the primary system, the primary system setting the highest completed ticket number equal to the assigned ticket number of the completed host write when the assigned ticket number of the completed host write is greater than the highest completed ticket number; and, sending the host writes, the sequential positions, and the sequential dependencies comprises the primary system sending the ticket log and the data log as write requests to, the secondary system. the primary system receiving a sequence of host writes from a host system, the host writes including address information and write data; the primary system recording sequential positions of the host writes; the primary system recording sequential dependencies of the host writes based on the sequential positions; the primary system completing the host writes and then acknowledging the completed host writes to the host system; and the primary system sending the host writes, the sequential positions, and the sequential dependencies as write requests to the secondary system, the method being characterized in that: recording the sequential positions and recording the sequential dependencies comprise: for each host write, the primary system: issuing a ticket to the host write, the ticket comprising an assigned ticket number and an assigned highest completed ticket number, the assigned ticket number comprising a current value of a ticket number at the primary system, the assigned highest completed ticket number comprising a current value of a highest completed ticket number at the primary system; incrementing the ticket number after issuing the ticket; and storing the address information and the ticket, in a ticket log; the primary system storing the write data in a data log; for each completed host write in the primary system, the primary system setting the highest completed ticket number equal to the assigned ticket number of the completed host write when the assigned ticket number of the completed host write is greater than the highest completed ticket number; and, for each host write, the primary system: issuing a ticket to the host write, the ticket comprising an assigned ticket number and an assigned highest completed ticket number, the assigned ticket number comprising a current value of a ticket number at the primary system, the assigned highest completed ticket number comprising a current value of a highest completed ticket number at the primary system; incrementing the ticket number after issuing the ticket; and storing the address information and the ticket, in a ticket log; issuing a ticket to the host write, the ticket comprising an assigned ticket number and an assigned highest completed ticket number, the assigned ticket number comprising a current value of a ticket number at the primary system, the assigned highest completed ticket number comprising a current value of a highest completed ticket number at the primary system; incrementing the ticket number after issuing the ticket; and storing the address information and the ticket, in a ticket log; the primary system storing the write data in a data log; for each completed host write in the primary system, the primary system setting the highest completed ticket number equal to the assigned ticket number of the completed host write when the assigned ticket number of the completed host write is greater than the highest completed ticket number; and, sending the host writes, the sequential positions, and the sequential dependencies comprises the primary system sending the ticket log and the data log as write requests to, the secondary system.