At we have decades of hands-on experience designing, implementing and reviewing (and rescuing!) business-critical distributed systems, in large, complex, often regulated industries.
We have seen how an impartial assessment of current or planned architecture decisions can expose trade-offs, risks and implications for new or existing systems.
Designing a new system, or rearchitecting an existing one, is a big undertaking. As well as the core choice of the technology stack, you need to consider operational characteristics such as availability, security, volumetrics, resilience, monitoring and observability, failover and redundancy.
How much load will the system face? When it is overwhelmed, how will it fail? Should it simply crash, slow down processing, reject any new requests, take itself offline? How will the different components in the system interact; how will you define their internal operational contracts?
There are decisions around deployment and release models, patching and rollback (or fix-forward), testing, diagnosis and recovery—and future prevention—of incidents, business continuity, cyber threat modelling and response strategy.
Then you have human and organizational considerations. Who will be building this? How will you structure the various teams involved, and how will they communicate with each other and out into the organization? How to create a shared vision and understanding of the architecture across the entire development, maintenance and governance population?
We can go as deep and as broad as you need, from a few days to several weeks, to surface, document and mitigate the risks involved in taking on a major new technical initiative.