Guaranteed, exactly once delivery of messages is disclosed. In one
embodiment, there is a sender and a receiver. In a sender transaction,
the sender does the following: receives a message from a sender queue;
generates a substantially unique identifier and an expiration time for
the message; and, saves the identifier, the expiration time, and the
message in a sender database. The sender then sends the identifier, the
expiration time, and the message to the receiver. In a receiver
transaction, the receiver then does the following: receives the
identifier, the expiration time, and the message from a receiver queue;
determines whether the message has expired based on the expiration time
and determines whether the message is present in a receiver database by
its identifier; and, upon determining that the message has not expired
and is not present in the receiver database, stores the message in the
receiver database, and performs actions associated with the message.