Supporting transient states using Akka FSM

18 views
Skip to first unread message

Christopher Hunt

unread,
Dec 22, 2017, 3:15:14 AM12/22/17
to Akka User List
Hey there,

I've recently come across a situation with transient FSM states that I'd like to model in Akka FSM. I'm wondering if there's a better way than below in terms of expressing transient states:

onTransition {
 
case A -> B
   
goto(C)
}

when(B) {
 
case _ =>
    log
.error("we should never have got here")
}



i.e. I need the when(B) in order to register the state. However, it is a state that we quickly pass through and serves to support the onTransition logic.

Is there a better way while retaining the B state?

Cheers,
-C

Heiko Seeberger

unread,
Dec 22, 2017, 12:45:00 PM12/22/17
to akka...@googlegroups.com
Hmm … ain’t is possible to goto(C) when in state A? Instead of going to the transient B.

--

Heiko Seeberger
Twitter: @hseeberger



--
>>>>>>>>>> Read the docs: http://akka.io/docs/
>>>>>>>>>> Check the FAQ: http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>> 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+...@googlegroups.com.
To post to this group, send email to akka...@googlegroups.com.
Visit this group at https://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

signature.asc

Christopher Hunt

unread,
Dec 22, 2017, 3:06:42 PM12/22/17
to akka...@googlegroups.com
You may not always want to go to C. My example didn’t highlight that, so apologies. 

It turns out that you can’t goto within anything other than a when handler anyhow (which makes sense to me).

What I did subsequently was send a message to self during B’s onTransition and capture it within B’s when. The code looks decent and correct in accordance with my state machine diagram. 
You received this message because you are subscribed to a topic in the Google Groups "Akka User List" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/akka-user/rZI1PcS_L1U/unsubscribe.
To unsubscribe from this group and all its topics, send an email to akka-user+...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages