On Tue, Oct 30, 2012 at 08:15:42AM -0400, Rafael Schloming wrote:
> My inclination is to persue option 2 for the following reasons:
> 
>   - Option 1 introduces more burden since users need to explicitly
>     manage the lifecycle of the returned objects. While this burden
>     might be mitigated in a garbage collected language, it would quite
>     likely significantly impact performance to let the GC manage
>     retiring these delivery objects. (The engine underneath messenger
>     is quite capable of cycling through hundreds of thousands of
>     deliveries per second, and this would most likely put a
>     significant burden on any GC subsystem.)
> 
>   - Option 1 introduces additional action objects, the user model is
>     simpler if all the actions stay with messenger.
> 
>   - Option 1 requires coming up with a name for something that is like
>     a delivery but not quite.
> 
>   - Option 2 potentially offers more capabilities in terms of
>     persisting delivery state outside a messenger.
> 
>   - Option 2 maps pretty naturally to the protocol notion of
>     delivery-tag and lends itself to a pretty easy name/analogy. One
>     option is pn_tracking_id_t, however I prefer the slightly more
>     abstract pn_tracker_t as it suggests a bit less about how it
>     might be implemented under the covers.

+1 on option 2, since it appears to be much more flexible and, as you
indicate, keeps the actions in Messenger. This is much more logical IMO.

-- 
Darryl L. Pierce, Sr. Software Engineer @ Red Hat, Inc.
Delivering value year after year.
Red Hat ranks #1 in value among software vendors.
http://www.redhat.com/promo/vendor/

Attachment: pgpVRUuADdLPq.pgp
Description: PGP signature

Reply via email to