I have been asked to propose a solution for a website with a complex workflow in the background.
Requirement: The website is a document authoring/publishing website which will allow users the upload files (the content plus many auxiliary files such as images, appendix, etc). Once the files are received, a workflow is initiated which involves storing the files, other data, firing jobs, uploading files to ftp, state transitions of the articles - sent to review, reviewed, etc. The other set of users are content reviewers who can download files and upload newer versions along with comments.
Solution must have:
- The website must support 1000 concurrent users.
- Technologies and components chosen should be reusable/extendable as necessary for other enterprise applications.
- Responsive web UI so as to support mobile devices as well
- Ability to handle files to the tune of 5-10 MB
- The file storage could grow exponentially and should support data to the tune of 2-5 TB
Good to have:
- Archiving mechanism in the file storage
The solution can be either Microsoft/Java/open source or a mix of all these technologies.
Technologies being considered:
- Website : ASP.Net MVC, JSP, open source frameworks such as bootstrap/angular/foundation
- Workflow engine: Windows Workflow foundation, Java workflow tooling,
- Database : SQL Server, MySQL, Mongo
- Document storage: Sharepoint, good old folders
I am from the Microsoft background and don't have much exposure to the Java/Open source world. I'd appreciate any input from those who have created similar applications.