|
|
|
|
|
by mrbald
2054 days ago
|
|
Always have a drawn picture, if you cannot draw it you will fail to explain it to others (and to see design gaps) and inevitably everyone will think it’s an over engineered complex shit. Design-wise: The IO multiplexing — event loop(s), the completion callbacks go to the "Processing". Processing — usually beneficial to model as a processing graph (tree/pipeline being specific examples of a graph without feedback loops). It's a clean, low overhead abstraction, easy to visualise (and thus discuss with others), easy to change structurally or in the "aspect oriented" way. Examples in JVM world: Netty pipelines, AKKA actors, streams, and graphs, in C++ world ASIO & its executors sub-framework. Queues/Threads is still a sufficiently low level to comfortably operate on. |
|