The web application in which the activiti engine will be deployed supports multiple customers where each customer's data being stored in a different database.
The requirements are… (I) each customer will have a different workflow in which case i'd imagine it requires multiple activiti engine instances within the same web application. (ii) each customer's activiti-related data needs to be stored in the corresponding customer's database. Are the above supported? Are there any other alternatives to this approach?
It's correct if you want the customer data stored in separate Activiti databases. If it's fine that the data is stored in the same database then you can select the right process definition based on the customer and you only need 1 Activiti engine.