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.

Architecture Digest
Architecture Digest
Architecture Digest
Designing the Architecture for a Photo ID Application: Identifying Complexity and Choosing Practical Solutions

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.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

architectureImage ProcessingStoragesystem-design
Architecture Digest
Written by

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.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.