Stream processing applications map continuous sequences of input data blocks to continuous sequences of output data blocks. They have demands on throughput of blocks or response time for each data block. We present theoretical bounds on the degree of parallelism of such applications, their throughput and response time. Based on these bounds, we develop scheduling heuristics for different optimization and constraint problems of stream processing applications involving throughput and response time. These results direct the manual implementation of efficient stream processing applications and will, on the long run, help generating them automatically.