The DBIAgent is your answer to non-blocking DBI in POE. It fires off child processes (configurable, defaults to 3) and feeds database queries to it via two-way pipe (or however Wheel::Run is able to manage it).