Am Montag, 6. Januar 2020 09:54:49 UTC+1 schrieb Brian Candler: > > On Monday, 6 January 2020 08:36:56 UTC, ffm...@web.de wrote: >> >> in Amoeba a thread can be suspended, thereafter be sent to some other >> machine where it is resumed. >> > > Thread migration doesn't solve the OP's issue, because threads share > memory with other threads: passing a copy of something is not the same as > passing a pointer to something, unless you have a way for writes through a > pointer to act on the original memory. >
Yes, you are right with that. I was dreaming a bit ... To extend the channel-based communication model in Go to a distributed setting you need "all or nothing" garanteed delivery of an item that is inserted into some distributed channel. Otherwise, in case of item to be placed in a distributed channel gets lost, the application may sit. What is useful here is supervision as in the actor model (see 1, 2). If two parties comminucate through a network and get communication problems, a third party resets >both< communication parties that thereafter start anew. This is the approach that made applications written in Erlang fault-tolerant and highly stable. However, if you want to apply supervision for distributed Go channels you have to change from channels to actors - at least behind the scenes of the distributed channels. AFAIK, no one has done something like that for anything writen in Go. Nats is very reliable, but does not provide guaranteed "all or nothing" delivery. [1] https://erlang.org/doc/design_principles/sup_princ.html [2] https://doc.akka.io/docs/akka/2.5/general/supervision.html -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/194f0772-0940-4515-850d-da0b410bb7f8%40googlegroups.com.