This guide is intended to be a tool for you to use when thinking of a good functional architecture of your Blueriq application. Blueriq positions itself as a System of Differentiation, which means that a Blueriq application has a lifetime of multiple years in which changes will occur frequently to the application. It is therefore important to be prepared for those changes. This guide introduces the concept of clean architecture and maps this to elements in studio. It shows you common problems and gives you tips on how to solve these.

Although the principle of clean architecture applies to any element within Blueriq, the focus of this guide for now is on the domain model and business rules. This may later be extended to other topics as well.

Who is this design guide for?

The guide is intended for experienced business engineers that want to think of the big picture of their project. You are either starting a new project and want to set it up or are already experiencing challenges when working with your project. When experiencing challenges it might be already too late, and making fundamental changes to the architecture can be costly. You need to be able to translate the points here to your specific situation. Even though a pattern presented in this guide might be good in general, you still may choose not to use it in you specific situation for good reason.

Organization of this design guide

  1. Maintainable Applications
    This chapter describes when a maintainable application is needed, and when it is not needed.
  2. Clean Architecture
    We introduce the clean architecture, which is good concept for talking about maintainable applications.
  3. Clean Architecture in practice
    The clean architecture is mapped to Blueriq, and the need for decoupling is explained.
  4. Patterns
    We show how a choice for a decoupling pattern is made, and what decoupling patterns we have available.
  5. Use Cases
    We present a set of use cases which show the considerations needed for choosing an appropriate decoupling pattern.