Love these ideas. Some more thoughts for OpenMRS 3.0.0 (some technical, some more cultural):
- Add more business logic into the Platform (e.g., incorporating emrapi methods like we discussed recently in a design forum).
- Steps toward cluster support
- Remove use of singletons (as you mentioned)
- Begin using & promoting redis (or similar) for application state
- Review queries for those that might not be safe in a clustered enviromment & refactor them
- More automation, including integration tests
- Utility functions for escaping all user-entered content by default when rendering (i.e., opt-out of escaping when displaying content) to better address XSS vulnerabilities.
Stretch goals:
- Convert to postgres as default database
- Migrate from JIRA to GitHub for issue management
…
For 4.0.0:
- Make our API horizontally scalable (clusterable)
For 5.0.0:
- Separate the API into microservices
- Containerize services so they can leverage whatever technology suits their needs best (e.g., nosql databases)