An important mathematical problem in manufacturing is the performance analysis of a production line. A typical production line consists of a series of workstations that perform different operations. Jobs flow through the line to be processed at each station. Buffers between stations hold the output of one station and allow it to wait as input to the next. A finite buffer can fill and block output from an upstream station or can empty and starve a downstream station for input. Blocking and starving are key mechanisms of the complex interactions between queues that form in the line. A critical measure of performance is throughput, defined as number of jobs per unit time that can flow through the line. Throughput is reduced when stations experience random machine failures, a common practical situation. Mathematical modeling is needed to capture the impact on throughput of station reliabilities, as well as processing rates and buffer sizes. A model can support operating decisions, such as how to improve a line to meet a throughput target, how to identify bottlenecks, and how much buffer space to allocate in line design.