Blog

What's new in Pistacy.io

Define Architectural Drivers for your Project

2025-04-30 by Adam Banaszkiewicz

When designing systems, one of the key steps is understanding Architectural Drivers – the forces that influence our design decisions. With them, we can build architecture that is not only technically sound, but above all tailored to the business and organizational context.

What is an Architectural Driver?

An Architectural Driver is a factor that impacts architectural decisions. It can be:

  • a business requirement,
  • a technical constraint,
  • a user expectation,
  • an organizational context (e.g. team structure, deadlines),
  • or non-functional requirements (e.g. performance, security, scalability).

Identifying drivers helps answer the question: why does the system look the way it does? – even before a single line of code is written.

Architectural Drivers in Pistacy.io

In Pistacy.io, you can define two categories of Architectural Drivers for your project: Quality Attributes and Constraints. Let's take a closer look at each of them.

Quality Attributes

Quality Attribute allows you to define the Quality of the system, that can be measurable. Most of them are technical, but rely on Business requirements. For example:

  • Performance – the system must respond in under 100ms.
  • Fault Isolation – the system cannot go down if a single service fails.
  • Maintenance Cost – the architecture must be affordable to maintain.
  • Scalability – the system must handle a dynamic increase in users.

Pistacy.io provides a list of Quality Attributes that you can use. You can also create your own.

List of architectural drivers in Pistacy.io

Quality Attributes - Prioritizing

Not all Quality Attributes are equally important. In Pistacy.io, you can mark several Quality Attributes as Major ones – those that have the greatest impact on architecture. For example:

For a SaaS startup, major Quality Attributes might be:

  • Maintenance Cost - Time to MVP
  • Scalability
  • Maintenance cost

For a banking system:

  • Fault Isolation
  • Security
  • Performance
Architectural drivers selected for project in Pistacy.io

Each Quality Attribute needs to have the reason, why it is important. Reason describes the need from time perspective. You know why you choose Extensibility now, but would you remember it in 6 months?

Project Constraints

Project Constraints tell you Technological, Organizational and Environmental subjects that are non-negotiable. It means that there are limitations outside of your scope, and architectural decisions must be aware of them. For example:

  • Small Team – Modular Monolith is better that Microservices when team is small.
  • Black Friday – When Time is your enemy, you probably need to choose fastest solutions possible.
  • Programming Language – Company has only C# backend developers, so you can't use Java because it would be expensive.
Project Constraints selected for project in Pistacy.io

Also in here, reason why this constraint exists is important. Time and Cost can be applied for MVC and also for long legacy project, but for different reasons.

Why does it matter?

✔ Better architectural decisions
✔ Fewer team conflicts ("why are we doing this?")
✔ Clear documentation of context
✔ The ability to explain architecture to the business

Define your architectural drivers in Pistacy.io today and see how much they influence every architectural choice you make.

Use Pistacy.io in your project today!

Try Pistacy.io platform - it is free of charge!

It's free - Try it!