The most common solution is running in asynchronous mode where the limits are wider. This can provide answer to most cases, but still the limits are there.
Other common approach that some were taken is to execute your process externally from Salesforce, Usually with webservices written in other language. It does require writing a code + integration with Salesforce, but still it is good solution as your business logic kept inside the webservices and you will have less effort making it work with other system in future, if needed.
Here I tried different approach for the issue. I added several objects inside Salesforce that can be used to describe the business process. Such setup can be done by Salesforce admin. Then I used external app (Java in this case) that connect into the org, read the process setup and translate it to executable code.
Since everything run externally and not in Salesforce server, it is not bound to Salesforce limits (except the limits of API callout), and it have the advantage that no code is needed.
The app contains 2 main components:
1.Tools for setup in Salesforce the business logic declarative.
2.External tool that run externally in any server. At every run it will find the business logic that was setup in Salesforce and run it.
The app can be installed from this link:
https://login.salesforce.com/packaging/installPackage.apexp?p0=04t1r000001eYnY