Expando is a feature of Liferay that allows users to add custom fields into the database without having to actually manually modify the database. In its simplest form, it's an interface for creating fields programmatically but also in the GUI if you so choose.
In Liferay the Expando service is a "generic" service which allows you to dynamically define a collection of data. This data can be
- typed (boolean, Date, double, int, long, short, String, and arrays of all those)
- associated with a specific entity (e.g. 'com.liferay.portal.model.User')
- arranged into any number of "columns"
- available to plugins
- accessed from Velocity templates
- accessed via Liferay's JSON API through AJAX