Declarative, event-driven reactivity: signals, streams, structured concurrency, and easy resource cleanup