Como o IMAP ocioso funciona?

Alguém pode me explicar como o IMAP IDLE funciona? Ele bifurca um novo processo para cada conexão que ele abre? De alguma forma, posso usar a eventmachine com ela?

Estou tentando implementá-lo em ruby no heroku com trabalhadores em segundo plano. Alguma ideia?