There is a huge demand for responsive, real-time mobile and web experiences, but current architectural patterns do not easily accommodate applications that respond to events in real time. Common solutions using message queues or HTTP long-polling quickly lead to resiliency, scalability, and development velocity challenges, due to the need to manage queues and develop complex workarounds for problems like thundering herds and dropped events. By adopting a protocol providing Reactive Streams semantics over the network boundary, we have been able to solve many of these problems at the communication layer. Using streams, data can be pushed to clients when it changes instead of having to long poll, while backpressure obviates the need for queues throughout the system. This makes it possible to create rich application experiences and support use-cases such as mobile-to-mobile communication and large file transfers that would be difficult or cost-prohibitive with traditional networking.