Design and Evolution of a Mobile Live‑Streaming Platform at Beike
This article describes how Beike built, refined, and scaled a mobile live‑streaming platform—detailing early challenges, architectural pain points of version 1.0, and the systematic improvements introduced in version 2.0 such as clear boundaries, functional aggregation, layered platform design, dynamic configuration, monitoring, and zero‑cost integration to support diverse business scenarios.
1. Introduction
Digital transformation has pushed many industries to move scenarios online, and Beike responded by launching live‑streaming features for agent training, virtual tours, and contract signing. The initial rollout was rushed to meet pandemic‑driven deadlines, resulting in a single‑project client built purely for functional delivery.
2. Industry Challenges
Numerous live‑streaming features (real‑time audio/video, CDN bypass, IM, document sharing, gifts, danmaku, sharing, etc.).
Designing an architecture that can handle increasingly complex multi‑scenario business.
Coordinating simultaneous development of the same page or feature by multiple developers.
Ensuring backward compatibility for new message types.
Device and OS fragmentation across iOS and Android.
Optimizing performance and resource usage on constrained mobile devices.
3. Pain Points of Beike Live 1.0
Unclear boundaries between middle‑office and front‑end logic, leading to extensive discussion and high integration cost.
Live‑SDK layers were poorly separated, causing tight coupling, low cohesion, and limited reusability.
Low degree of dynamic configuration; even minor feature tweaks required a new release.
High onboarding cost for new developers because live features were tightly coupled with business logic.
4. Improvements in Beike Live 2.0
4.1 Clear Boundaries and Responsibilities
The client now interacts only with a single business front‑end, which in turn mediates all downstream systems, simplifying the mobile side and eliminating direct calls to commerce or acquisition platforms.
4.2 Function Aggregation and Convergence
Core live‑streaming processes and functions are encapsulated into a unified platform, exposing key nodes via interfaces or abstractions to keep business logic decoupled and extensible.
4.3 Platformization and Layering
The platform separates responsibilities into four vertical layers: Basic (initialization and parameter handling), Framework (core live‑streaming functions), Controller (orchestrates framework and middle‑office), and Compose (independent reusable UI components such as likes, shares, and danmaku).
4.4 Dynamic Configuration
All functional modules are driven by runtime configuration, allowing the platform to switch between TRTC and CDN, enable or disable features (likes, co‑hosting, gifts, etc.), and adapt to different live‑streaming scenarios without code changes.
4.5 Monitoring and Logging
The platform collects logs and metrics centrally; actual reporting is delegated to the client‑side reporters, reducing coupling and version‑maintenance overhead.
4.6 Zero‑Cost Integration
Developers only need to add the appropriate library and perform minimal initialization; the platform handles the rest, letting business teams focus on their core logic.
4.6.1 Dependency Declaration
implementation(rootProject.ext.depsLibs.common_live) {
changing = true;
transitive = true;
}
implementation(rootProject.ext.depsLibs.ke_live_compose) {
changing = true;
transitive = true;
}
implementation(rootProject.ext.depsLibs.ke_live_controller) {
changing = true;
transitive = true;
}
implementation(rootProject.ext.depsLibs.ke_live_framework) {
changing = true;
transitive = true;
}
implementation(rootProject.ext.depsLibs.ke_lib_basic) {
changing = true;
transitive = true;
}4.6.2 Initialization
// Set playback callbacks
mLiveController.setLivePlayListener(mLivePlayListener);
final String groupId = getRoomId() + "";
// Register cloud streaming callbacks
VideoManager.getInstance().registerCloudListener(groupId, mCloudListenerImpl);
// Register IM callbacks
MessageManager.getInstance().registerMessageListener(groupId, mMessageListener);4.6.3 Resource Release
mLiveController.onRelase();
VideoManager.getInstance().unRegisterCloudListener(mCloudListenerImpl);
MessageManager.getInstance().unRegisterMessageListener(mMessageListener);4.7 Ultimate Shape
The final architecture presents a fully decoupled, configurable, and monitorable live‑streaming platform that can be consumed by any business scenario with minimal effort.
5. Business Use Cases
The platform now supports a wide range of Beike services, including agent training, virtual negotiations, online contract signing, new‑home live broadcasts, second‑hand property tours, overseas showcases, celebratory events, and more.
6. Postscript
After the rapid iteration that satisfied early business needs, the team focused on optimizing and upgrading the live‑streaming framework. By layering the technology and encapsulating common components, the platform eliminated coupling between business, middle‑office, and front‑end, making live‑stream development almost identical to ordinary feature development and dramatically improving development efficiency.
Beike Product & Technology
As Beike's official product and technology account, we are committed to building a platform for sharing Beike's product and technology insights, targeting internet/O2O developers and product professionals. We share high-quality original articles, tech salon events, and recruitment information weekly. Welcome to follow us.
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.