Strategy & Transformation
How to Calculate ROI for AI and Software Modernization
A practical, finance-ready framework for comparing AI and modernization investment with the current-state cost, realistic benefits, delivery risk and time to value.
operationalwrocław--:-- cet
∕ insights / system-architecture-design.md
System Architecture Design
System architecture design explained for SaaS and legacy modernization: patterns, requirements, scalability, security and governance, with a clear next step.
>_article.meta

Your SaaS team shipped the MVP quickly, but now every feature takes longer and launch-day traffic makes everyone nervous. You need faster delivery without paying for outages, runaway infrastructure costs, or a rewrite nobody budgeted.
System architecture design means deciding how a system is split into parts, how those parts communicate, where data lives, and how the platform survives failure. Those choices determine whether your next business opportunity needs a routine release or a disruptive engineering project.
Say a founder launches a subscription product with billing, account management, and reporting tightly connected. The arrangement helps the team ship initially. Later, a reporting change requires testing checkout, an import competes with customer requests for database capacity, and every release needs the same senior engineer.
The problem isn't that the team chose a monolith. It's that nobody established boundaries around capabilities with different business priorities.
On April 7, 1964, IBM launched System/360 as a compatible family rather than separate machines for scientific and commercial workloads, allowing software written for one model to run on others, according to IBM's System/360 history.
That separation between software compatibility and physical hardware remains useful. Your application should depend on explicit contracts, not accidental details of its current environment. Changing a payment provider, database deployment, or hosting arrangement shouldn't require rewriting unrelated business rules.
For a SaaS founder, this means protecting the ability to change pricing, onboard customers, and expand capacity. For an enterprise, it means replacing infrastructure without losing the behavior that keeps operations running.
Architecture is a business decision about the future cost of change. Ask the architect to explain a boundary in terms of release independence, failure containment, ownership, or migration cost. A diagram full of recognizable technologies isn't enough.
Pattern selection should match the product's stage and the team's operating capacity. Requirements should turn customer expectations into measurable acceptance criteria. Failure design should establish what customers can still accomplish during disruption.
Security needs explicit access boundaries and accountable approvals. AI workflows need operational controls beyond a convincing demonstration. Modernization needs an economic case for each component, including the option to leave it alone.
The next step isn't selecting a framework. The product owner and architect should agree which outcomes matter, identify the decisions that could block them, and record who will validate each assumption.
A useful architecture explanation connects every important technical choice to a business consequence.
Before approving a design, ask:
Architecture patterns compared by fit and trade-off
These team sizes are illustrative planning signals, not validated thresholds. Ownership boundaries and operating capability matter more than headcount.
| Pattern | Best fit | Main trade-off | Team size signal |
|---|---|---|---|
| Monolith | Very early product with one small team | Hard to scale or change parts independently | 1 to 5 engineers |
| Modular monolith | SaaS MVP that must grow without a rewrite | Requires discipline to keep module boundaries clean | 3 to 15 engineers |
| Microservices | Several independent teams and high, uneven scale | Operational overhead and distributed failure modes | 15 or more engineers across several teams |
| Event-driven | Asynchronous workflows and many integrations | Harder debugging and eventual consistency | Integration load, not headcount, sets the threshold |
| Serverless | Spiky workloads with a small operations team | Platform limits, cold starts and vendor lock-in | Small teams with limited operations capacity |
In IcePanel's 2024 software-architecture survey, 67% of respondents used microservices and 62% used event-driven architecture. Both are mainstream. Neither percentage tells you what your product needs.
The visual comparison highlights the different operating commitments behind these patterns.

Premature microservices turn local programming problems into network, deployment, and coordination problems. Your engineers must diagnose partial failures, maintain compatible interfaces, and operate separate services before independent deployment creates meaningful value.
Start with one deployable application and clear internal modules. Organize those modules around business capabilities such as subscriptions, customer accounts, and fulfillment. Keep business rules behind module interfaces, and stop unrelated modules from writing directly into each other's data.
Enforce the boundaries through dependency checks, code review, and tests. Folder names alone don't create modularity.
Extract a service when you can name the problem it solves. Perhaps a compute-heavy workload needs independent scaling, or a separate team needs release autonomy. Extraction should remove a demonstrated constraint, not satisfy an architectural preference.
These patterns aren't mutually exclusive. A modular monolith can publish events and use serverless functions for document conversion. A microservices platform can still contain tightly coupled services that must deploy together.
Serverless removes some infrastructure administration, but your team still owns application behavior, permissions, observability, and recovery. Event-driven processing separates the timing of work, but it also requires someone to explain delayed or out-of-order outcomes.
Have the engineering lead answer these questions before approving the pattern:
Use the answers to select the simplest pattern that keeps the next twelve months of planned changes safe. Treat that horizon as a planning exercise, not a demand to predict every future requirement.
A 99.9% availability SLO permits a 0.1% error budget; with 1,000,000 requests over four weeks, that means 1,000 failed requests, as illustrated in Google's error-budget policy. That's a decision mechanism, not just a monitoring statistic.
The same policy recommends halting feature releases and nonessential changes when the budget is exhausted, while allowing urgent security and priority fixes. Engineering effort then shifts toward restoring reliability rather than adding more change to an unstable service.
Agree on these terms before selecting infrastructure:
Availability targets and the downtime they allow
The downtime equivalents below are arithmetic illustrations using a hypothetical 365-day year and 30-day month. They describe time-based availability, not the request-based error budget above.
| Availability target | Allowed downtime per year | Allowed downtime per month | Typical use |
|---|---|---|---|
| 99% | About 3.65 days | About 7.2 hours | Internal tools with accepted interruptions |
| 99.9% | About 8.76 hours | About 43.2 minutes | Most B2B SaaS features |
| 99.95% | About 4.38 hours | About 21.6 minutes | Business-critical customer workflows |
| 99.99% | About 52.6 minutes | About 4.3 minutes | Flows with exceptionally low interruption tolerance |
These application categories are starting recommendations, not industry mandates. A customer's contractual or operational needs should determine the actual target.
Availability alone isn't a complete requirement. Define latency, throughput, data durability, security, and cost per transaction as well. Specify measurement boundaries: a fast gateway response doesn't prove the customer completed their purchase.
Use sample non-functional requirements to turn broad expectations into testable statements. Replace “the system must be fast” with a named customer action, measurement method, target, and accountable owner.
The product owner should approve the business expectation. The architect should demonstrate how the design supports it, and the operations owner should confirm that it can be measured.
Choose an availability target for each customer-facing flow. Don't give an administrative export and a revenue-critical checkout the same target merely because they share a platform.
Provisioning exactly enough capacity for peak traffic is an incomplete design. During maintenance, rolling deployment, or host failure, you no longer have enough healthy capacity to meet the same demand.
Google's SRE guidance describes N+2 provisioning: the system can handle peak demand with N instances, potentially in degraded mode, while two additional instances are unavailable because of planned and unplanned outages. The important principle is to size for the failure state, not just the healthy state.
Don't apply the formula mechanically to every component. Examine load distribution, shared bottlenecks, and the capacity that remains usable after a failure. Spare application instances won't help if every request still waits on an overloaded database.
Spread stateless compute across failure domains such as availability zones. Reserve failover capacity, and verify that deployment automation doesn't remove more healthy capacity than the design permits.
The product owner must also decide which functions can degrade:
For practical failure-mode thinking, GoReplay's resilience principles for DevOps teams provide a useful companion to capacity planning. Convert the selected behaviors into acceptance tests, rather than leaving them as diagram annotations.
Recovery-point objective, or RPO, defines acceptable data loss. Recovery-time objective, or RTO, defines acceptable recovery time. The business owner must approve both because they affect customer obligations and operating continuity.
Replication isn't a substitute for recoverable backups. Replicas can propagate an accidental deletion, so test restoration and reconciliation separately. Document who decides which data copy is authoritative after recovery.
Multi-region deployment can help during regional disruption or maintenance, but it adds routing, consistency, reconciliation, and operational work. Approve it only when a quantified requirement justifies those obligations.
Use a focused system reliability improvement plan to assign corrective work to named owners.
Failure-test rule: Remove planned capacity and trigger an unplanned failure while representative peak traffic continues.
The operations lead should verify latency, queue depth, and customer-visible completion against the agreed objectives. Capture the recovery sequence and failed assumptions, then require fixes before declaring the architecture ready.
Treat integration boundaries as primary production risk points. Start by listing every system a feature touches, the interface owner, and the person responsible when the connection fails.
Use synchronous calls when the customer needs an immediate answer. Use asynchronous events for work that can finish later, such as notifications, billing synchronization, and reporting.
That distinction is a business choice. An order can be accepted while a confirmation email waits, but a customer shouldn't receive payment confirmation before the payment outcome is known.
Say fulfillment receives an order event before the payment update arrives. The design needs an explicit pending state, not an assumption that messages always arrive in the expected order.
For workflows spanning several systems, define compensation as carefully as the happy path. If inventory is reserved but payment fails, someone must own releasing that reservation.
Use the recurring system integration challenges as review prompts, then maintain the resulting interface inventory alongside the code.
The integration lead's next step is to select a critical workflow and test duplicate messages, delayed responses, and partner downtime. The intended outcomes are fewer cascading failures, clearer partner onboarding, and changes that don't unexpectedly break neighboring systems.
Every change must pass architecture review by a named architect, automated tests, a security review, observability, and a documented runbook and decision record. That's our review gate, not an optional cleanup activity after release.
Apply the gate proportionately. A routine change can reference established controls and update an existing decision record, while a new trust boundary needs deeper review. The evidence still needs to exist.
Security and governance fail when teams grant broad access, leave approvals in chat, and lose the reasons behind important decisions. Make those responsibilities visible.
The management checklist separates access controls, approval practices, and decision history.

Agent configurations belong inside these controls. Foo Guard's discussion of policy as code for agent configurations is useful when translating permission rules and approval requirements into enforceable configuration checks.
An architecture decision record should capture the reasoning someone will need when circumstances change. Store it in the repository and connect it to implementation work.
Use these fields:
Named accountability doesn't mean one person does all the work. It means one person answers for whether the decision remains valid.
Start with the checklist and draft two decision records covering your three most expensive decisions, grouping related choices where appropriate. The architect should identify missing evidence and schedule the next review trigger before approving further investment.
Choosing a capable model doesn't make an AI system production-ready. An agent may produce an excellent answer during a demonstration while its surrounding workflow loses state, repeats an action, or stalls when a provider reaches capacity.
The 2026 Durable Execution Benchmark Report, covering 130 backend, full-stack, and AI engineers, found that 20% of teams building AI in production spend 26–50% of engineering capacity on reliability work; it also discusses Datadog production telemetry indicating that approximately 5% of AI model requests fail, with nearly 60% of those failures attributed to capacity limits rather than model quality.
The architectural response is not just a different prompt. Agentic workloads require persistent workflow state, bounded retries, capacity management, fallbacks, observability, and spending controls.
Our AI work starts with the business process, opportunity, and process economics before technology selection. Model and architecture decisions come last, based on evidence.
Say an agent prepares supplier orders. Establish the value of faster preparation, the cost of incorrect orders, and the approval obligations before comparing models. A system that drafts accurately but submits unauthorized purchases isn't a successful automation.
Answer these questions before building:
Count success only when the output meets the business acceptance criteria. Cheap requests that produce unusable work don't represent good economics.
Keep the model's recommendation separate from the code that authorizes actions. Validate structured outputs, enforce tool permissions, and require human approval for consequential exceptions.
Use representative evaluation cases that include incomplete inputs, contradictory records, unavailable tools, and malicious instructions embedded in retrieved content. The senior engineer owns the evaluation criteria and production release decision.
AI changes delivery economics. It doesn't transfer engineering accountability to an agent.
Agentic AI can accelerate analysis, development, testing, documentation, and migration work. Our architects and engineers remain responsible for architecture, data, security, testing, and production quality.
The AI lead's next step is to demonstrate a complete workflow under failure, with traceable decisions and measured cost per accepted outcome. Select the model that supports that process, not the model that produces the most impressive isolated response.
Standing still has an operating cost. In Ensono's 2025 survey of 500 U.S. and U.K. IT and business leaders, 57% of teams spent most of their time maintaining daily operations, 49% experienced higher-than-planned legacy-maintenance costs, and 43% struggled to integrate legacy systems with newer platforms; related findings reported that AI tools accelerated modernization for only 39% of teams, while 33% said they introduced new challenges.
Don't confuse faster code generation with a safer migration. The difficult work includes discovering hidden behavior, reconciling data, preserving integrations, and proving that operations can continue.
The migration sequence should reduce uncertainty before increasing the scope of change.

Rank candidates by business criticality, change frequency, failure impact, and measurable economic value. A frequently changed bottleneck deserves attention, but its replacement may need rehearsal on a lower-risk capability first.
Retain, refactor, rebuild or replace: choosing the path
| Option | Choose it when | Risk to watch | First move |
|---|---|---|---|
| Retain | Stable, rarely changed, with low business value | Hidden dependencies on other systems | Document interfaces and monitor them |
| Refactor | Business logic is sound but the structure is poor | Regressions when code changes without tests | Write characterization tests, then extract modules |
| Rebuild | Core logic is outdated but the domain is well understood | Scope creep and the cost of running two systems | Build alongside the old system with clear exit criteria |
| Replace | A commodity function has a mature product option | Data migration effort and vendor lock-in | Pilot one workflow with a tested rollback plan |
A modular monolith is safer than service decomposition when the team still needs shared transactions and coordinated delivery. A façade provides a stable entry point while implementations change underneath. An anti-corruption layer translates legacy concepts so they don't dictate the new domain model.
Our paid modernization assessment establishes the current architecture, data, integrations, risk, and business objective. Rite NRG then recommends what to retain, refactor, rebuild, or replace.
Use this video as a discussion prompt when aligning the migration team.
The modernization owner should report business progress, not just code converted. Track maintenance effort, delivery lead time, unresolved reconciliation issues, and components retired. A replacement that never permits shutdown leaves the organization paying for both systems.
Before you commit the full delivery budget, run a structured architecture check. Put every unresolved assumption next to the decision it affects, the evidence that would settle it, and the person who owns resolving it. That single artifact turns architecture from an opinion into an investment case your board can interrogate.
A technical and operational assessment reviews architecture, dependencies, security position, observability and operational risk, then agrees what must be corrected first. Its job is to make investment decisions defensible.
If it produces a long document and no ranked corrections, it failed.
Ask for evidence where uncertainty is expensive: a representative load test, a data reconciliation sample, a contract test against a partner sandbox, or a recovery rehearsal. For AI workloads, start with the process economics instead of the model. What the business process costs today, what the model changes about that cost, and what happens when the model is wrong all have to be answered before model and architecture choices are made on evidence.
On Days 1 to 5, Rite NRG validates architecture, data, integrations, risk and the delivery plan. Required systems, data, environments and access can be provided before Day 1, so the team inspects real constraints rather than a description of them.
The immediate outputs should support decisions:
A short assessment can establish the initial architecture, backlog and service expectations for a managed team. It should not imply that every future detail is settled. Assessments, roadmaps and architecture reviews are offered at a fixed fee, so the cost of finding out is capped before delivery spend begins.
Name an accountable architecture owner, delivery owner and business-outcome owner. Keep engineering accountability explicit as well, so quality decisions do not disappear between design and execution. Every change then passes architecture review by a named architect, automated tests, a security review, plus observability and a documented runbook and decision record.
The RiteWay approach puts architecture before generation, uses AI-accelerated execution with human approval gates, and requires production evidence for important decisions. Treat that as a budget control, not a slogan. It is what stops spend on code nobody has agreed to own or operate.
The business owner keeps product priorities and acceptance authority. Senior engineers remain answerable for whether the implementation meets the agreed standards and can be operated and handed over. Handover is part of the deal, not a favour at the end: source repository, architecture and decision records, test evidence, a deployment and operating runbook, and an access and responsibility map.
Bring your most expensive decisions and realistic failure scenarios to the assessment. Leave with explicit choices, ranked corrections, and a delivery plan you can defend to your board.
Rite NRG offers architecture reviews and modernization assessments that connect system architecture design to delivery risk, operating responsibility, and business outcomes. Visit Rite NRG to book an assessment, and bring your three most expensive decisions, critical integrations, and failure scenarios so we can turn them into an actionable plan.
/ about the author
Written by the RITE NRG editorial team — the architects, engineers and delivery leads who build and operate AI-era software for our clients.
Strategy & Transformation
A practical, finance-ready framework for comparing AI and modernization investment with the current-state cost, realistic benefits, delivery risk and time to value.
Technology Talent & Teams
A decision-maker's guide to IT partnership models: what each model actually transfers to the partner, what it costs beyond the rate card, and how to match the model to your situation.
AI Consulting & Automation
A practical framework for choosing and deploying transport or logistics AI agents around real exceptions, reliable data and controlled operational authority.
More guidance: all insights articles
Tell us about the system or idea behind this article. We tell you honestly if it is a fit — and what a fixed-scope delivery could look like.