A Systems Design concept that partitions systems into a:

  • Producer: creates resources
  • Consumer: consumes resources That each consume and produce at different rates. Uses a Queue that to ensure non-blocking communication.
  • Consumer blocked when Buffer empty
  • Producer blocked when Buffer full