On 20.02.14 14:00, Patrik Nordwall wrote:



On Thu, Feb 20, 2014 at 1:47 PM, <d...@coinport.com <mailto:d...@coinport.com>> wrote:

    To create an order, we need to check balance first and if fund is
    insufficient, no event will be generated;
    To cancel an order, we need to check the order exists and is still
    pending.

    Anyway, my point is, there might be scenarios like this where two
    EventsourcedProcessor might be necessary to co-exist and work
    together though one or two channels in between. The current
    limitation prevents an EventsourcedProcessor form sitting behind a
    PersistentChannel...


I think you have a good point. I don't know how difficult it would be to support it,

that's a minor addition to let ConfirmablePersistent messages through. OTOH, letting to (eventsourced) processors communicate with each other via channels smells like someone wants to extend a consistency boundary beyond a single actor, especially if state of actor A needs to be checked to conditionally update state of actor B and vice versa (as in the given example). In this case, both processors should be collapsed into a single one.

but feel free to create a ticket and we will investigate it. The least we can do is to document the limitation (well, it's already documented in the ScalaDoc) and how to work around it.

/Patrik



    On Thursday, February 20, 2014 6:17:46 PM UTC+8, Martin Krasser
    wrote:

        Why don't you let M2 handle createOrder and cancelOrder
        commands and
        emit orderCreated and orderCanceled events to M1? This way you
        could use
        EventsourcedProcessor to implement M2 and a Processor to
        implement M1.

        On the other hand, it's a bit difficult to give an advise here
        without
        knowing validation, consistency and other requirements

        On 20.02.14 08:40, dong wrote:
        > Martin, let me figure out a empale to make my point.
        >
        > Suppose my app is a trading platform, it has two memory
        based models -
        > account balances (M1), and pending orders (M2).  The
        > deposit/withdraw/createOrder commands shall be handled by
        M1, lets say
        > after processing a 'crateOrder' event, it reduced the
        account balance,
        > and then sent a 'OrderCreated' event to M2 for updating
        pending order
        > set.  On the order hand, cancelOrder commands are handled by M2
        > directly and after an order is cancelled, M2 needs to send
        an event to
        > M1 to increase the balance (in case an order doesn't exist,
        no event
        > is ever persisted).
        >
        > In such a use case, both M1 and M2 shall be Eventsourced
        processors,
        > and I'd like them to work together. Does this make any sense?

-- Martin Krasser

        blog: http://krasserm.blogspot.com
        code: http://github.com/krasserm
        twitter: http://twitter.com/mrt1nz

-- >>>>>>>>>> Read the docs: http://akka.io/docs/
    >>>>>>>>>> Check the FAQ: http://akka.io/faq/
    >>>>>>>>>> Search the archives:
    https://groups.google.com/group/akka-user
    ---
    You received this message because you are subscribed to the Google
    Groups "Akka User List" group.
    To unsubscribe from this group and stop receiving emails from it,
    send an email to akka-user+unsubscr...@googlegroups.com
    <mailto:akka-user%2bunsubscr...@googlegroups.com>.
    To post to this group, send email to akka-user@googlegroups.com
    <mailto:akka-user@googlegroups.com>.
    Visit this group at http://groups.google.com/group/akka-user.
    For more options, visit https://groups.google.com/groups/opt_out.




--

Patrik Nordwall
Typesafe <http://typesafe.com/> - Reactive apps on the JVM
Twitter: @patriknw

--
>>>>>>>>>> Read the docs: http://akka.io/docs/
>>>>>>>>>> Check the FAQ: http://akka.io/faq/
>>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user
---
You received this message because you are subscribed to the Google Groups "Akka User List" group. To unsubscribe from this group and stop receiving emails from it, send an email to akka-user+unsubscr...@googlegroups.com.
To post to this group, send email to akka-user@googlegroups.com.
Visit this group at http://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/groups/opt_out.

--
Martin Krasser

blog:    http://krasserm.blogspot.com
code:    http://github.com/krasserm
twitter: http://twitter.com/mrt1nz

--
     Read the docs: http://akka.io/docs/
     Check the FAQ: http://akka.io/faq/
     Search the archives: https://groups.google.com/group/akka-user
--- You received this message because you are subscribed to the Google Groups "Akka User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to akka-user+unsubscr...@googlegroups.com.
To post to this group, send email to akka-user@googlegroups.com.
Visit this group at http://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to