core-async

2025-02-11T19:04:53.988579Z

Random question. Is there anything stopping you from putting a function on a channel?

2025-02-11T19:05:04.828069Z

no

🤯 1
➕ 1
🙏 1
2025-02-11T19:07:52.480749Z

Next question. Anyone done anything cool with this concept? Feels like it could be great for reifying dynamic behaviour change.

2025-02-11T19:08:18.333949Z

Say like changing the behaviour of 30% of the system. Or gradual behaviour roll out change.

2025-02-11T19:09:26.964319Z

I've not seen anything. What would be the upside of that vs e.g. alter-var-root?

2025-02-11T19:12:01.094019Z

alter-var-root would change behaviour for everyone

2025-02-11T19:12:37.045849Z

What if I want to "deploy" a function to 20% of users, stuff like that?

2025-02-11T19:12:41.481339Z

could use 2 vars. 30% use one, 70% use the other.

2025-02-11T19:13:22.738039Z

yeah idk, maybe I'm not very imaginative. That sounds very difficult to keep track of what's going on.

2025-02-11T19:14:12.370449Z

Also how do I make that behaviour change orderly in a running system? Like not change the behaviour half way through processing an item.

2025-02-11T19:14:33.065549Z

It's more a thought exercise at this point.

2025-02-11T19:24:56.578029Z

There are erlang like "become" things you can do with it, but you have to be very disciplined to make that work well. The new flow stuff separates channel operations and state persistence from function logic which makes that sort of thing seem more viable.

2025-02-11T19:25:39.840809Z

I was just about to say it feels very Erlang. 100% see a lot of foot guns with it like you pointed out

ghadi 2025-02-11T20:06:07.248629Z

you can put channels on channels, too

2
🤯 1
Joe R. Smith 2025-02-11T23:45:24.969719Z

I heard you like channels...

2025-02-12T00:42:43.605349Z

yo dawg

😁 3