I have used workflow engines in the financial services and payments area for over 25 years now, and each has its strengths and weaknesses. I find Copper most intriguing and am considering doing a proof-of-concept. The autoload of workflows, clustering, versioning, and Java-centric approach fits the need for a specific use case I have in mind.
What I am looking to develop is a Spring Boot application that runs workflows (possibly up to 250 at a time) that send and receive files on a scheduled interval using SFTP and local fie copies, run specific programs via their command lines, and provide email and REST notifications of file progress. Ideally, I would like to use Spring Integration wherever possible for my file, SFTP, JMS, JDBC, and other adapters.
I need the ability to do splits and joins within the workflow, control concurrency, and perform recovery and restart in the event of failures. Many of these workflows listen for a specific time or calendar event joined with the availability of remote or local file before continuing processing.
I would use either Quartz or Spring Integration pollers to trigger timer events so I am not expecting Copper to directly deal with this.
Is this a feasible use case for Copper? Do you offer consulting to assist in my exploration?