<div dir="ltr"><div dir="ltr">Em ter., 21 de jun. de 2022 às 10:53, <<a href="mailto:eric@kolotyluk.net">eric@kolotyluk.net</a>> escreveu:<br></div><div class="gmail_quote"><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-CA" style="overflow-wrap: break-word;"><div class="gmail-m_-399087976513899044WordSection1"><p class="MsoNormal">I agree that we need to analyze the system to put the right constraints in the right places, but can this be automated more, such that it is more ‘magic’? <i>Is anyone researching this?</i> Not like a magic bullet, but well… I never thought cars could drive themselves… but they do…<br></p><p class="MsoNormal"><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Largely, I was hoping there were better ways to build systems that don’t thrash, which is appalling behaviour I have seen before, even in the systems I have built. Systems that better utilize resources <i>by default</i>, so we don’t have to waste resources to avoid thrashing. However, I believe Virtual Threads make better use of resources the way Virtual Memory does, so we are definitely heading in the right direction.<br></p></div></div></blockquote><div><br></div><div>In my experience with reactive frameworks, the framework is magic only if you use predefined "sources" and "sinks" which by nature solve this problem for you.</div><div>This is like programming TCP: it does flow control for you, there is no need to worry about it.</div><div>Whenever you need to define a new source or a new sink for your custom case, reactive framework magic disappears.</div><div>In these cases, the tools to do backpressure in "reactive" and "threads" are the same: bounded atomic queues or "channels".</div><div>This concept of "channel", like Go has, is probably the magic that will complete this picture.</div><div></div><div><br></div></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div>Pedro Lamarão</div></div></div></div>