title: Creating a queue system with Argo Workflows
body: <p>I am trying to figure out how to set up a <strong>work queue</strong> with <strong>Argo</strong>. The Argo Workflows are computationally expensive. We need to plan for many simultaneous requests. The workflow items are added to the work queue via HTTP requests.</p>
  <p>The flow can be demonstrated like this:</p>
  <pre class="lang-py prettyprint-override"><code>client  
    =&gt; hasura # user authentication  
      =&gt; redis # work queue
        =&gt; argo events # queue listener
          =&gt; argo workflows 
            =&gt; redis + hasura # inform that workflow has finished
              =&gt; client 
  </code></pre>
  <p>I have never build a K8s cluster that exceeds its resources. Where do I limit the execution of workflows? Or does Argo Events and Workflows limit these according to the resources in the cluster?</p>
  <p>The above example could probably be simplified to the following, but the problem is what happens if the <a href="https://argoproj.github.io/argo/events/#authentication-and-security" rel="noreferrer">processing queue is full</a>?</p>
  <pre class="lang-py prettyprint-override"><code>client
    =&gt; argo events # HTTP request listener
      =&gt; argo workflows
  </code></pre>