Catalyst also provides a standardised interface for data models, authentication, session management and other common web application elements.
All of these elements are implemented as plugins to a set of common interfaces, allowing the developer to change the specific method used (e.g. a session storing in shared memory versus as a database table, or using FastCGI versus operating as an within Apache's mod_perl) by changing the configuration of Catalyst to use a different plugin without altering the application code.
Maypole was one of the first web application frameworks for the Perl programming language that was based on the MVC pattern; its principal author was Simon Cozens.
Catalyst promotes the re-use of existing Perl modules that already handle common web application concerns well.
Catalyst can run using any database supported by Perl's DBI (this means almost anything, even a CSV file), but a proper RDBMS or ODBMS is recommended.
Several different RDBMS systems are supported, including MySQL, PostgreSQL, SQLite, IBM Db2, Oracle and Microsoft SQL Server.
[10] Many Catalyst-based projects use DBIx::Class as the ORM layer, which provides further abstraction of SQL queries, using a resultset-based API with transparent support for arbitrary joins and other features.
Websites powered by Catalyst include Magazines.com,[11] bbc.co.uk iPlayer backend,[12] DuckDuckGo's Community Platform, http://flexibase.io and Tripwolf.com.