Uncontrolled data flowing through an application can blow the runtime to bits. When one of the components/service in a system is struggling to keep up with load it can fail catastrophically because of build up of memory. Since the component/service cant keep up and cant fail it should communicate the fact that it is under stress to upstream components so that the upstream service slows down. The backpressure may cascade all the way to the user . (The component which is receiving commands from user can only slow down the user by returning some error like "system busy" ). At this point the user experience for some users will suffer but this will ensure that on whole system is more reselient and responsive. In other words backpressure allows a component / service to apply breaks on incoming data by controlling the producer. Backpressure is a key concept in reactive programming.

When the incoming task rate from producer is higher than the consumer’s ability to process then following strategies to handle the over produced items.