typelevel / typelevel/cats-effect

Write up "Lineage-Restricted DAG" model of concurrency

Open
#1,100 2 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

:books: docs
Dominant language
Scala
Stars
2.2k
Forks
576
Avg merge
2d 11h
Merged PRs (30d)
18

Description

This is mostly a self-TODO.

  • Monad allows for linear dataflow
  • Concurrent gives us lineage-restricted DAGs such that all vertices arising from a fork must have a single inbound edge, and all vertices arising from a join must have a single outbound edge
  • Allocate (#1017) gives us a general DAG such that we are allowed forks with multiple inbound edges and joins with multiple outbound edges. It also technically allows for dataflow cycles, so I guess in theory we have general graphs with this

https://gitter.im/typelevel/cats-effect-dev?at=5f3c5d06a05e464346d38a05

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the Monad and Concurrent descriptions in this issue, then read Allocate (#1017) and the linked Cats Effect development discussion for the intended distinctions. Done means producing an agreed write-up of the Lineage-Restricted DAG model and its relationship to linear dataflow and general DAGs.

Written by the indexing model from the issue text.

Assessment

Tech stack
scala
Domain
documentation
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.