Fundamentals 12 min read

General Software Architecture Overview and Implementation

This article presents a comprehensive overview of a flexible, layered software architecture—covering gateway, business, and foundation layers—explaining how to evolve from simple startup setups to adaptable structures that support HTTP/TCP handling, service design, component abstraction, and common technical components.

Architects' Tech Alliance
Architects' Tech Alliance
Architects' Tech Alliance
General Software Architecture Overview and Implementation

When a startup begins, developers often choose simple architectures such as LAMP or SSH to iterate quickly, but as business complexity grows these structures become hard to maintain, leading to massive codebases, tangled if‑else logic, and difficulty in onboarding new developers.

The author proposes a more adaptable architecture based on an evolved three‑tier model: a gateway layer (handling various protocols like HTTP and TCP), a business layer (encapsulating services, processes, and reusable components), and a foundation layer (providing interfaces and technical components).

In the gateway layer, HTTP requests are processed via standard containers (e.g., Tomcat) and Spring MVC, with controllers acting as unified entry points that parse parameters, invoke services, and format responses while handling errors. TCP requests are handled using frameworks such as Netty or Dubbo, abstracting protocol details from business logic.

The business layer is organized into three sub‑layers: business services (exposing domain‑specific interfaces), business processes (orchestrating rules and actions), and business components (reusable code fragments for parameter assembly, rule evaluation, and action execution). The article emphasizes designing clear interfaces (e.g., OrderService, MemberService) and separating read/write responsibilities.

The foundation layer consists of interface definitions and technical components. Interface design follows domain‑driven naming (e.g., insertUser, cacheUser) to hide implementation details. Technical components include data storage (relational and NoSQL), caching strategies (local, distributed, persistent), messaging and scheduling, transaction management, and locking mechanisms.

Overall, the architecture aims to decouple external protocol handling from internal business logic, promote modularity, and enable easier evolution and maintenance of complex systems.

backendArchitecturelayered architecturesoftware designgatewaybusiness-layer
Architects' Tech Alliance
Written by

Architects' Tech Alliance

Sharing project experiences, insights into cutting-edge architectures, focusing on cloud computing, microservices, big data, hyper-convergence, storage, data protection, artificial intelligence, industry practices and solutions.

0 followers
Reader feedback

How this landed with the community

login 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.