also depending on how big the state of the world will be and it's ability to be partitioned (maybe actor don't need the whole state, only slice of it), the different strategies may apply
@Horusiath I've come across a couple but I can't seem find any real code examples that are more than simple test games. I'll keep searching and finish the bootcamp first before I start getting ahead of myself :)
Concerning PipeTo: If my intent is to allow my Actor to continue processing other messages while a long running task runs, then I don't need to use PipeTo correct?
Don't introduce concurrency on an actor level. You'll introduce all problems of concurrency actors are supposed to solve. If you have long running tasks, isolate them in dedicated actors.
PipeTo is used by and actor to keep up with task completion acknowledgements. You can use it without problems.
@Horusiath thanks. Point 1. has been my preferred approach, but I wasn't sure if something else was preferred. So if I need to write a file from records in a database I do:
Create an Actor for the whole process, lets call it DataWriterActor
Create a child of DataWriterActor called DataExtractor
Do data access in DataExtractor
Tell parent of results Is this the recommended approach?
except making them a parent/child relation, yes :)
You keep them totally independent?
both of those actor types are making potentially risky operations, you could supervise them with dedicated parent actors and simply keep an actor ref between them
Ok got it
@skotzko what is the new "ready" label about ? it shows up on tasks that are not yet started so that seems odd
so with the io shit, can the actors be multiplexed against same port on same ip?
or is it like the actors host the tcp endpoint?
@rogeralsing maybe "ready" in the sense that tasks are ready to be worked on (e.g. acknowledged / explained enough)? Just spitballing a guess.
ah, that could be it
@Coinio you could be the first to write such an example ;)
@Horusiath put them into separate tasks because I'm asking some of our newer contributors to take them on - this makes it easier to assign them