Using Java's Project Loom to build more reliable distributed systems

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • BlockHound

    Java agent to detect blocking calls from non-blocking threads.

  • lucene-grep

    Grep-like utility based on Lucene Monitor compiled with GraalVM native-image

    - Graal native images are real. These boast a far lower startup overhead and much lower steady state memory usage for simpler applications.

    Probably my counterexample of choice is this: https://github.com/dainiusjocas/lucene-grep - it uses Lucene, probably the best search library (core of Elasticsearch, Solr, most websites), which is notoriously not simple code to implement grep-like functionality. In simple cases, they demonstrate a 30ms whole process runtime with no more than 32MB of RAM used (which looks suspiciously like a default).

    The JVM is fast becoming a bit like Postgres... one of those 'second best at everything' pieces of tech.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

  • loom

    https://openjdk.org/projects/loom

    It's more accurate to say Loom is [a particular type of] continuations in the JVM, which can be used to implement green threads / fibers.

    You can see the implementation of VirtualThread here: https://github.com/openjdk/loom/blob/fibers/src/java.base/sh...

    This uses the internal 'one-shot delimited continuation': https://github.com/openjdk/loom/blob/fibers/src/java.base/sh...

    So, at least in principle, there is scope for other styles of concurrency to be implemented over this.

  • coyote

    Coyote is a library and tool for testing concurrent C# code and deterministically reproducing bugs.

    If you're looking for similar concurrency testing in the dotnet world, checkout Coyote:

    https://microsoft.github.io/coyote/

    https://innovation.microsoft.com/en-us/exploring-project-coy...

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts