How Huolala Evolved Its Core Infrastructure from Monolith to Service Mesh

This article outlines Huolala's journey through five architectural stages—monolith, RPC, SOA, microservices, and service mesh—detailing the motivations, challenges, and technical choices such as Dubbo, Spring Cloud, and Istio that shaped its high‑availability, cloud‑native backend platform.

dbaplus Community
dbaplus Community
dbaplus Community
How Huolala Evolved Its Core Infrastructure from Monolith to Service Mesh

Architectural Evolution

Monolithic (2014‑2016) : All modules packaged together, tightly coupled, requiring load‑balancing for scalability.

RPC (2016‑2020) : Introduced a service layer to extract reusable business logic, improving code quality but still tightly coupled via shared objects and private TCP protocols.

SOA : First ESB‑centered, then service‑registry‑centered (e.g., Consul) for dynamic discovery and better scalability.

Microservices : Lightweight HTTP + REST communication, clear service boundaries, rapid iteration, but governance gaps remain.

Service‑Mesh : Container‑native sidecar proxies provide service discovery, load balancing, circuit breaking, rate limiting, forming a mesh of sidecars.

Migration Timeline

2014‑2016: All‑in‑one PHP monolith.

2016‑2020: Split into dozens of core services (dcore, ucore) using HTTP + REST, still lacking governance.

2020‑present: Microservice transformation with Spring Cloud and Dubbo, gradually adding governance.

Microservice Governance Challenges (2020)

High cost of managing hundreds of internal domain names.

Inconsistent protocols (GET, POST JSON, FORM) across PHP and Java services.

No service registry, circuit breaker, or fallback, leading to brittle call chains.

Need to migrate a large PHP codebase to Java incrementally.

Technical Selection

Dubbo (SOA) : Mature RPC but lacks cloud‑native support, circuit‑breaker, and generic invocation.

Spring Cloud (Microservices) : Easy entry but large binaries, high memory usage, and limited protocol control.

Self‑developed framework : Combines Dubbo’s layered design with custom components:

Standard JSON‑RPC for cross‑language calls (Java ↔ PHP).

Consul as service registry.

Hystrix (Java Agent) for circuit breaking.

Feign‑like generic client support.

Implementation Details

The custom framework mirrors Dubbo’s module structure (dubbo‑common, dubbo‑config, dubbo‑filter, etc.) and defines generic interfaces using annotations. @FeignClient(value="XC-SERVICE-MANAGE-CMS") or JSON‑RPC style:

@JsonRpcService("/path/to/MyService")
interface MyService {
    // service methods
}

Governance capabilities include:

Circuit breaking via Hystrix.

Configuration management integrated with the internal config center.

Monitoring through the internal monitoring platform.

Runtime control via the soa‑admin console.

Java Agent plugins (Metric, Trace, SOA) that can be upgraded dynamically.

Future Direction

Plan to adopt a full Service Mesh (Istio) once the container platform matures, acknowledging increased operational complexity, required Kubernetes/Istio expertise, added latency, and platform lock‑in.

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.

JavaMicroservicesDubboService MeshSpring Cloudservice governancearchitecture evolution
dbaplus Community
Written by

dbaplus Community

Enterprise-level professional community for Database, BigData, and AIOps. Daily original articles, weekly online tech talks, monthly offline salons, and quarterly XCOPS&DAMS conferences—delivered by industry experts.

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.