01:27
<Clark Pan>

👋 Hey team!

I'd like to introduce myself and andrew-cnv . We're working for Canva, a web based online design platform. We're currently looking to improve our telemetry in the product and have come across Async Context.

We were wondering if we could attend the next meeting and get a lay of the land. The future topic on usable polyfills to test with is especially interesting. We were also wondering what are the blockers for this proposal reaching stage 2.7.

01:28
<Andreu Botella>
Hi! The main blocker for stage 2.7 is figuring out exactly how the context should propagate across the many web APIs, especially events
01:30
<Andreu Botella>
currently Mozilla is blocking the proposal because they think the complexity in implementation (if every single event that is caused asynchronously by some web API needs to have the context propagated) would not be worth it considering the use cases
01:34
<andrew-cnv>
Does Mozilla have recommendations or a path forward? Is there any way we can help? (Also thanks for the background!)
01:35
<Andreu Botella>
it'd be really helpful to know if the current web integration works for you, and in particular whether you need it to work for some specific async events
01:35
<Andreu Botella>
https://github.com/tc39/proposal-async-context/blob/master/WEB-INTEGRATION.md
01:56
<Clark Pan>
Regarding the current web integration, I think the one that jumps out at me is ResizeObserver. From what I read, it sounds like the callbacks themselves will be run under the empty context. This presents a problem as we're looking to figure out how much rendering work is the result of certain actions in the UI. These actions may be resizing some parent container, and have that change propagated down to child elements. I note that you mention certain observations may expose the causal snapshot related to that particular observation. The specific callout was PerformanceEntry, but I was wondering if ResizeObserverEntry is in that bucket?
01:58
<Andreu Botella>
it wasn't so far
01:59
<Andreu Botella>
I don't know how easy that would be to implement, I'll look into it
02:00
<Clark Pan>
(That same problem applies to IntersectionObserver as well)
02:00
<Andreu Botella>
in any case, exposing the causal snapshot in specific kinds of observers is something that can be added later without risking web compat concerns, which isn't the case for extending propagation of almost everything else in the proposal
02:02
<Clark Pan>
For more context: We've been experimenting with using Zone.js to do this context propagation. We're not happy with the limitations that are imposed by using Zone.js and was looking to see how far away Async Context would realistically be.
10:10
<Ilias Bhallil>
A few months back, I built a lightweight polyfill. https://github.com/iliasbhal/simple-async-context It’s fully tested and I’ve used it in several projects (nothing quite at Canva scale 😄 ). Feel free to try it out—I’d appreciate any feedback, especially if you hit edge cases or have a unique use cases.