Are the technologies used in an application part of the architecture, or do they represent implementation/detailed design details?

Posted by m3th0dman on Programmers See other posts from Programmers or by m3th0dman
Published on 2013-07-02T08:43:30Z Indexed on 2013/07/02 11:13 UTC
Read the original article Hit count: 278

When designing and writing documentation for a project an architecture needs to be clearly defined: what are the high-level modules of the system, what are their responsibilities, how do they communicate with each other, what protocols are used etc. But in this list, should the concrete technologies be specified or this is actually an implementation detail and need to be specified at a lower level?

For example, consider a distributed application that has two modules which communicate asynchronously via AMQP protocol, mediated by a message broker. The fact that these modules use the Spring AMQP library for sending and receiving messages is a fact that needs to be specified in the architecture or is a lower-level detailed design/implementation detail?

© Programmers or respective owner

Related posts about design

Related posts about architecture