Nothing in the OP particularly suggests anything that calls for a higher-level framework like Catalyst or Dancer ... CGI::Application and its brethren just might be good enough. Expressed concerns about the number of rows in the database-tables being queried are irrelevant so long as the queries and table-indexes are properly designed. Expressed concerns about the number of sessions are much the same – it will not matter. (Portions of requirements like this one can also be handled using tools like
RPC::Any if the decision is made to do most of the presentation client-side using JavaScript.) Frameworks can be very helpful but they also introduce complexity which might not be necessary in an apparently-specialized internal use case like this one seems to be.