What Matters Most to a Software Architect? Beyond Features to Quality & Scalability
The article explains that software architects focus first on server environment, concurrency, security, and quality attributes rather than UI layout, outlining key functional and non‑functional concerns, evaluation methods, and scaling strategies for systems such as MMOs.
Software architects prioritize concerns beyond system functionality, focusing on server environment, operating system, concurrency, security, and network placement.
Key practices of successful architects include stakeholder involvement and balancing functional and quality attributes.
Functional: What features does the product provide to users?
Variability: Which future changes are likely and which are unnecessary to simplify design?
Performance: Desired performance characteristics of the product.
Capacity: Expected concurrent users and data storage needs.
Ecosystem: Interactions with other systems in the deployment environment.
Modularity: How to decompose software into independently developable modules that meet each other's requirements.
Buildability: How to construct software as reusable components, deciding which to reuse internally or obtain from external vendors.
Productization: Strategies for developing product lines with variants, investment considerations, and incremental development.
Security: Requirements for authentication, data access restrictions, data protection, and defense against attacks such as DDoS.
Architecture evaluation can be performed via performance modeling for throughput and scalability, fault tree analysis for reliability, and metrics for complexity and coupling, or through direct questioning of architects, including trade‑off analysis to identify risks.
Designing scalable architectures requires distributed systems that can add or remove machines based on load.
In enterprise settings, about 90% of data access is read‑only; tasks typically read large amounts of data and write little. In MMO and virtual worlds, latency is critical, and two main scaling approaches are geographic sharding and partitioned instances.
Geographic sharding assigns different world regions to separate servers, allowing independent scaling but requiring design decisions about region placement.
Partitioned instances duplicate the same region across multiple servers, enabling parallel handling of load but preventing cross‑partition interaction.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
21CTO
21CTO (21CTO.com) offers developers community, training, and services, making it your go‑to learning and service platform.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
