# Elm Concurrent Task v1.0.0

**URL:** <https://discourse.elm-lang.org/t/elm-concurrent-task-v1-0-0/9320>\
**Category:** Show and Tell\
**Created:** [September 14, 2023, 9:20am UTC](https://discourse.elm-lang.org/t/elm-concurrent-task-v1-0-0/9320 "2023-09-14T09:20:32Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![andrewMacmurray](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/andrewmacmurray/32/2797_2.png) [@andrewMacmurray](https://discourse.elm-lang.org/u/andrewMacmurray)\
**Post date:** [September 14, 2023, 9:20am UTC](https://discourse.elm-lang.org/t/elm-concurrent-task-v1-0-0/9320/1 "2023-09-14T09:20:32Z")

</div>

Hello friends,

I’m excited to announce [elm-concurrent-task v1.0.0](https://package.elm-lang.org/packages/andrewMacmurray/elm-concurrent-task/1.0.0/) is released 🎉

This package lets you:

- Run a tree of Tasks concurrently.
- Safely call external JS as Tasks (also known as `Task Ports`).
- Run anywhere without any hacks (in the Browser or NodeJS).

A big thank you to @dillonkearns for the idea and support, and @choonkeat for testing, feedback and contributions.

- Check out [the examples](https://github.com/andrewMacmurray/elm-concurrent-task/tree/main/examples) for an idea of what you can do.
- Check out [the repo here](https://github.com/andrewMacmurray/elm-concurrent-task).
- Check out [the elm-package docs here](https://package.elm-lang.org/packages/andrewMacmurray/elm-concurrent-task/1.0.0/).

---

<div class="post-metadata">

**Author:** ![Warry](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/warry/32/3998_2.png) [@Warry](https://discourse.elm-lang.org/u/Warry)\
**Post date:** [September 14, 2023, 10:01am UTC](https://discourse.elm-lang.org/t/elm-concurrent-task-v1-0-0/9320/2 "2023-09-14T10:01:27Z")

</div>

Congrats! it made me think of [elm-procedure 1.1.1](https://package.elm-lang.org/packages/brian-watkins/elm-procedure/latest/)

---

<div class="post-metadata">

**Author:** ![andrewMacmurray](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/andrewmacmurray/32/2797_2.png) [@andrewMacmurray](https://discourse.elm-lang.org/u/andrewMacmurray)\
**Post date:** [September 14, 2023, 3:35pm UTC](https://discourse.elm-lang.org/t/elm-concurrent-task-v1-0-0/9320/3 "2023-09-14T15:35:33Z")

</div>

Thanks!

It’s similar in spirit to `elm-procedure` (making sequencing side effects nicer), but from my understanding the key differences are:

- It performs sub-procedures sequentially (`Procedure.map2` has similar behaviour to `elm/core`’s `Task.map2`)
- If you’re using ports and you’re expecting a value on the other side you still have to wire together Commands and Subscriptions together via `Procedure` and `Channel`.

Whereas `elm-concurrent-task`:

- Performs `map2`+ (and nested `map2`+) concurrently.
- Is more oriented around a Request/Response style - i.e. call an external function an expect a value back (you can do this with `Task` in `elm-procedure` but you lose the concurrency bit).

---

<div class="post-metadata">

**Author:** ![Erudition](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/erudition/32/1502_2.png) [@Erudition](https://discourse.elm-lang.org/u/Erudition)\
**Post date:** [September 15, 2023, 11:25pm UTC](https://discourse.elm-lang.org/t/elm-concurrent-task-v1-0-0/9320/4 "2023-09-15T23:25:09Z")

</div>

My app uses TaskPorts, and I use packages that provide namespaced taskports. It’s not super clear to what extent I would have to ditch them or work around them if I want to migrate to this package. A guide on this would be awesome!

---

<div class="post-metadata">

**Author:** ![munirashraf982](https://avatars.discourse-cdn.com/v4/letter/m/3be4f8/32.png) [@munirashraf982](https://discourse.elm-lang.org/u/munirashraf982)\
**Post date:** [September 18, 2023, 9:27am UTC](https://discourse.elm-lang.org/t/elm-concurrent-task-v1-0-0/9320/5 "2023-09-18T09:27:06Z")

</div>

This is super exciting news, congrats on the release! 🎉 Running a tree of Tasks concurrently sounds like a game-changer, especially for more complex applications. And the seamless integration with external JS is something that’s much needed in the Elm community.

Shoutout to @dillonkearns and @choonkeat for their contributions! Can’t wait to dig into elm-concurrent-task and see what it can do.

---

<div class="post-metadata">

**Author:** ![dirkbj](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/dirkbj/32/3162_2.png) [@dirkbj](https://discourse.elm-lang.org/u/dirkbj)\
**Post date:** [September 18, 2023, 9:31pm UTC](https://discourse.elm-lang.org/t/elm-concurrent-task-v1-0-0/9320/6 "2023-09-18T21:31:16Z")

</div>

This sounds like a great addition to our ecosystem. Excited to dive in.

---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex035/uploads/elm_lang/original/1X/50a05e53677a2c3b47776d7abd0f113eb50193a1.png) [@system](https://discourse.elm-lang.org/u/system)\
**Post date:** [September 28, 2023, 9:31pm UTC](https://discourse.elm-lang.org/t/elm-concurrent-task-v1-0-0/9320/7 "2023-09-28T21:31:26Z")

</div>

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.
