How to choose architecture for a project?