Architecture defines types of application components, their roles, and connections between them. It ensures clear separation of concerns and low coupling of elements resulting in their maintainability, scalability, and reusability. These benefits apply to both simple and complex systems, and they are technology agnostic. The decision which architecture to use is critical, and its subsequent changes are very expensive. For this reason, the developers responsible for the design should have a broad knowledge of the underlying technologies, tools, and standards.
This is an initial post of an article series about Drools as a business rules engine. Instead of focusing on the complete syntax, API, features etc. in these blog series I would like to raise some other topics not being mentioned often, however crucial in the subject matter.