For event-driven microservices, I think Perl 6 is actually a great choice. I have experience writing some small things in Go and Node.js, but Perl 6 offers much more powerful high-level features for handling async, concurrency, and parallelism.<p>Promise combinators are built into the language to provide composable concurrency. But unlike using something like Q in Node.js, you can truly perform tasks across promises in parallel (and with static typing to boot!)<p>Perl 6 has channels for when you want Go style semantics, but you also have Supplies for when you want their dual: instead of pushing events through channels you pull them reactively. This allows you to write highly declarative code; see <a href="https:&#x2F;&#x2F;gist.github.com&#x2F;muraiki&#x2F;222814d5928f648be3c1" rel="nofollow">https:&#x2F;&#x2F;gist.github.com&#x2F;muraiki&#x2F;222814d5928f648be3c1</a><p>I think that P6 will also be awesome for data munging. Here&#x27;s a pipeline that processes text from a file with 4 parallel workers.<p><pre><code>  my $lines = open(&#x27;foo.json&#x27;, :r).lines.hyper(batch =&gt; 20, degree =&gt; 4)
  my $filter = $lines.grep: -&gt; $line { $line ~~ &#x2F;someregex&#x2F; };
  my $json = $filter.map: &amp;from-json;
  my $foos = $json.grep: *&lt;some_property&gt; == &#x27;foo&#x27;;
  say $foos.list[8];
</code></pre>
Since the operations are done in scalar context, they essentially operate lazily, pulling one value through the chain at a time. The pipeline is only activated once coerced to list context at the end, and only enough values as are required to find the 9th match are processed.<p>I&#x27;ve used Elixir before. It has some great features and having the power of BEAM and OTP is quite awesome. But sometimes the actor model is not what you want. I think that Perl 6 will be not just a great glue language, but also a powerful language for writing multi-paradigm applications that meet the demands of modern systems.