software-architecture-questions