News for hackers. Stuff that matters.
Re:Tree-Structured Concurrency by swader999 on Sunday July 02, 2023 @11:51AM (#36562616)
How possible is this kind of thing in Golang, in Elixer? I'm trying to choose tech for parsing, processing, calculating, and applying complex business rules to a massive csv parsing pipeline. Early stages but golang seems like the right candidate.
Re:Tree-Structured Concurrency by lenkite on Sunday July 02, 2023 @12:47PM (#36563185)
All this is easily possible. You can leverage fan-out/fan-in/pipeline concurrency patterns in Go.
Re:Tree-Structured Concurrency by anacrolix on Monday July 03, 2023 @09:20PM (#36580958)
It's really awful in Go to create concurrency patterns. In particular because the generics are clunky and verbose, and there are no type classes/traits. There's also no good cancellation convention: Context is verbose, dynamically typed, and not used in all the standard interfaces.
Re:Tree-Structured Concurrency by matreyes on Sunday July 02, 2023 @01:26PM (#36563534)
This is, actually, the erlang/elixir concurrency model, (with a lot of tooling behind for doing it well).
Re:Tree-Structured Concurrency by adamwk on Sunday July 02, 2023 @02:03PM (#36563923)
Isn’t erlang a very different, almost opposite concurrency model? I’m not an erlang expert but async message passing is a very different style. The limitation around background tasks in structured concurrency is trivial in erlang for example
Re:Tree-Structured Concurrency by matreyes on Monday July 03, 2023 @11:05AM (#36573942)
Yes, but proceses are supervised (in a tree structure). So you have the same warranties described in structured concurrency
Re:Tree-Structured Concurrency by swader999 on Monday July 03, 2023 @01:03PM (#36575813)
Yeah this seems compelling, especially the economics of it when paying for machine time.