On Wed, Nov 26, 2008 at 1:49 AM, Udi Dahan
<[EMAIL PROTECTED]> wrote:
>
> In my example of EDA/SOA (from a previous email), I described a Sales
> service, a Fulfilment service, and a Billing service.
>
> Sales publishes an OrderAccepted event when it accepts and order, containing
> all order information.
>
> Both Fulfilment and Billing are subscribed to this event.
>
> After Billing has billed the customer, it publishes a CustomerBilled event
> containing all billing information and the Id (or multiple Ids) of the
> order(s) billed.
>
> [This is not a self-contained message as it doesn't contain the full order
> information]
>
> Fulfilment is also subscribed to the CustomerBilled event, and only ships
> orders to customers that have been both accepted and billed.
>
> Even though Fulfilment doesn't receive the order information in the
> CustomerBilled event, it can easily do the correlation between the events
> using the order Ids.
>
>
>
> In this case, the non-fully-self-contained message doesn't lead to, or imply
> any architectural problems.
>

The way I understood the original post is that the data reference was
to a different system. So passing an order number that would be used
to look up the order in another system.

A customer ID might be a better example. If you only pass an ID in a
ObtainSomeResource event message you could hit a timing issue. When
the customer requested the resource they were entitled to it. However,
by the time the message was processed their subscription was no longer
valid. The service processing the ObtainSomeResource message would
look up the customer and deny the request. Or maybe the customer's
address or email changed.

In your example the full message was sent out earlier and probably
stored by the Fulfillment service. The CustomerBilled message then
triggers the Fulfillment service to act on a prior message.

The thing that stands out in your example is that the Billing service
has some implied knowledge about the Fulfillment service. It knows
that either the Fulfillment service is subscribed to the OrderAccepted
message or knows how to lookup the order. Can this be a bad thing?


-- 
David
http://www.traceback.org

Reply via email to