Designing the Architecture for a Photo ID Application: Identifying Complexity and Choosing Practical Solutions
Backend developer Xiao Ming designs an architecture for a photo‑ID app by identifying complexity in image storage and processing, prioritizing solutions such as local‑disk abstraction and Baidu AI services, and applying the principles of suitability, simplicity, and evolutionary design to produce a practical system.
Xiao Ming, a backend developer at an internet company, is tasked with creating a "Certificate Photo" application and needs to propose an architecture solution.
He recalls the three basic architecture principles: "suitable > industry leading," "simple > complex," and "evolutionary > big‑bang," and receives a concise CTO mantra: "The main purpose of architecture design is to solve problems caused by software system complexity."
Analyzing the app, he identifies the main complexity points as image storage and image processing. Assuming a daily active user base of 10,000 with 20% processing images, he estimates roughly 10 GB of storage per day, scaling to hundreds of gigabytes over a month.
He ranks the complexities in order of priority: 1) image storage, 2) image processing, 3) order handling, 4) logistics, etc.
For storage, although a distributed file system is considered, he opts for the simplest solution—local disk storage—while designing an abstraction layer to allow future expansion. He notes his phone model as Galaxy s9 for reference.
For image processing, he outlines the workflow: user uploads a photo, face detection, portrait‑background segmentation, client‑side composition, and final ID photo generation. Since the company lacks in‑house expertise, he selects Baidu AI’s third‑party services for face detection and segmentation, adhering to the "suitable > industry leading" principle.
By first pinpointing complexity, prioritizing it, and applying the principles of suitability, simplicity, and evolutionary design, Xiao Ming produces a feasible architecture that balances cost, scalability, and maintainability.
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.
Architecture Digest
Focusing on Java backend development, covering application architecture from top-tier internet companies (high availability, high performance, high stability), big data, machine learning, Java architecture, and other popular fields.
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.
