▲ | selkin 10 hours ago | |
> Good concurrency should make the code simpler to understand and reason about as it grows. As an ideal. But you can only go so simple once you have a piece of data that is read at the same time by many, while also maybe mutated by at least one. And as simple you can get version 1.0, as software grow, it gets new features which necessitate more interactions with that data, which makes synchronization more complex. | ||
▲ | eikenberry 8 hours ago | parent [-] | |
> [..] once you have a piece of data that is read at the same time by many, while also maybe mutated by at least one.[..] Dataflow patterns avoid this sort of issue by eliminating shared memory mutation. All data flows through the system by value with mutations only flowing downstream. There are several "Concurrency Patterns" videos by Rob about using these patterns in Go on youtube. |