[use cases] ISSUE-1 - Push vs. Pull Terminology

The problem with the replacement terminology (payer-initiated for "push"
and payee-initiated for "pull") is that there are different aspects of a
transaction to be "initiated", so it's unclear what "initiated" refers
to. For example, a customer (payer) "initiates" a transaction when they
tell a merchant (payee) that they want to buy one of their products.
However, in the end, a "pull" based mechanism may be used to actually
move the funds. So, the terminology is unclear.

One way to think about push vs. pull payments may be to think of
readiness states. The money for a transaction shouldn't move until both
the payer and the payee are ready for it to occur.

In a push-based model, the payee is implicitly ready to receive the
funds and is just waiting for the payer to become ready. Once the payer
is ready, the funds transfer will occur.

In a pull-based model, the payer indicates that they are ready by
granting authorization to the payee to "pull" the funds from their
account. Once the payee is ready, the funds transfer will occur.

So, you can think of this as two boolean flags, payer-ready and
payee-ready, and when both are true, money will be transferred.
Therefore, the only difference between push vs. pull is which party is
ready first. Push-based payments require that the payee be ready before
the payer and pull-based payments require that the payer be ready before
the payee.

This can also be turned on its head, such that push-based payments
require the payer to be ready last, or to finalize the transaction.
Pull-based payments require the payee to be ready last, or to finalize
the transaction. There was confusion with the original terminology
because there are multiple things to be "initiated" when transacting,
but does that same problem exist with finalizing a transaction? Can a
transaction be considered "finalized" simply once both parties have
indicated they are ready for the money to move? If so, perhaps we could
use this replacement terminology:

"Push" => Payer-finalized
"Pull" => Payee-finalized

Hopefully, even if those terms have their own problems, this way of
thinking about the issue may help us find some better terms.


-- 
Dave Longley
CTO
Digital Bazaar, Inc.

Received on Thursday, 19 February 2015 18:35:30 UTC