I was wondering what is the actual difference between Kahn Process Network and Actor Model. Indeed, if I look up at the definition, they both are models in which computational entities (called Actors in both cases…) exchange messages via unbounded buffers. Moreover, in both cases, these messages are sent asynchronously since a procedure can always send a message. It does not need to wait for the recipient to be ready to receive.
Hence my question, is there any actual difference ?
Thanks a lot !
Kahn process network is guaranteed to be deterministic. All the FIFO connections between processes are priorly known and they do not dynamically alter during the course of execution. In contrast, in case of Actor model (quoting wikipedia) :
Actor model, therefore is not guaranteed to be deterministic. Quoting Wikipeda :
Another important distinction is how the communication takes place
In case of KPN – to preserve determinism, all communication is through FIFO channels. But there is not such requirement in case of Actor model. Quoting Wikipedia :
As is quite clear from the above discussion, KPN is a much more constrained scenario which can be modelled using the actor model by adding additional restrictions.