Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added conceptual documentation and general introduction #2140

Merged
merged 3 commits into from
Jul 24, 2021

Conversation

djspiewak
Copy link
Member

No description provided.

Copy link

@rintcius rintcius left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just some typos I saw while reading part of it.

docs/concepts.md Outdated Show resolved Hide resolved
docs/concepts.md Outdated Show resolved Hide resolved
Copy link
Member

@vasilmkd vasilmkd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Amazing read. Thank you so much for this.

docs/concepts.md Outdated Show resolved Hide resolved
docs/concepts.md Outdated Show resolved Hide resolved
docs/concepts.md Show resolved Hide resolved

#### Structured Concurrency

Formally-speaking, structured concurrency is a form of control flow in which all concurrent operations must form a closed hierarchy. Conceptually, it means that any operation which *forks* some actions to run concurrently must forcibly ensure that those actions are completed before moving forward. Furthermore, the *results* of a concurrent operation must only be made available upon its completion, and only to its parent in the hierarchy. `parTupled` above is a simple example of this: the `IO[(Response, Response)]` is unavailable as a result until *both* service calls have completed, and those responses are only accessible within the resulting tuple.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since fork has not been used up to here, should we add a (start in Cats Effect) to maybe link the general concept to the actual implementation in CE?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I struggled a lot with this paragraph. "Fork" in particular is difficult, because it's hard to define the concept without being circular. I'm not sure the implementation really helps, but I do agree this needs re-wording.

docs/concepts.md Show resolved Hide resolved
docs/concepts.md Show resolved Hide resolved
Co-authored-by: Vasil Vasilev <vasil@vasilev.io>
@vasilmkd
Copy link
Member

TIL, commit co-authoring. Handy.

@djspiewak
Copy link
Member Author

TIL, commit co-authoring. Handy.

Says the guy who figured out how to co-author all of his tracing commits with @RaasAhsan

@vasilmkd
Copy link
Member

I did not actually, they are all authored solely by @RaasAhsan. I only committed them (even though in reality I also wrote them, because they needed a lot of changes since the underlying code had moved forward so much).

@vasilmkd
Copy link
Member

vasilmkd commented Jul 22, 2021

I used git commit --amend --author "Author Name <author@name.com>".

@djspiewak djspiewak merged commit aa5d80d into typelevel:series/3.x Jul 24, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants