A single programming model is provided for accessing a plurality of
distinct message transports while developing one or more applications for
message delivery between two endpoints. The programming model allows for
independently configurable assurances and features for transporting the
messages. The configurable assurances may be selected from at least once
delivery, at most once message delivery, in order message delivery, and
message time to live. The independently chosen features may include a
session state storage, an extension of time to live, and transacted
message buffering.