A Brief Discussion on the Impact of ToB and ToC Business Models on System Architecture
The main purpose of developing company business systems is to promote and support business development. Therefore, different business models have different requirements for company business systems.
To understand the different system requirements of different business models, we first need to understand the characteristics of different business models:
||2B|2C| |:--|:--|:--| |Product|Strong domain professionalism|Product is close to life, easy to understand| |User|Oriented towards industry customers, need to negotiate entry one by one|Broad user base, strong explosiveness| |Business Model|Business model is generally not replicable, requires time to accumulate resources|Easily replicated by others| |Marketing Mode|Need to do deep and fine work for customers, expand new customers based on benchmark customers|Burn money to acquire customers| |Competitors|Winner takes all|Need ecosystem cooperation, co-development| |Revenue|Hard to feed oneself, basically rely on capital transfusion|Most can survive on their own business| |Skills|Creativity is more important than technology|Technology is more important than entrepreneurship| |Business Logic|Business is complex and changeable, business process is long|Business is relatively simple|
Based on the different characteristics of the above two models, the requirements for the system are also different:
||2B|2C| |--|--|--| |Stability|High|Medium| |Usability|Medium|High| |User Count|Medium|High| |Scalability|Medium|High| |Security|Medium|High|
Therefore, when doing system architecture, the points that need to be traded off are also different. For ToC systems, key considerations include caching, performance, horizontal scalability, etc., while for ToB systems, considerations include data consistency, development efficiency, and embracing the changeable nature of business.
Specifically:
- In ToB systems, data structure design is primarily to meet business needs. Basically, there is no need to use caching components/KV databases like Redis, Memcached, and it is best not to use MySQL master-slave mode (to avoid business logic confusion caused by synchronization delay). Synchronous processing should be preferred over asynchronous processing to improve development efficiency and reduce the probability of errors. When performance issues are encountered, identify bottlenecks and perform targeted optimization.
- For ToC systems, data structure design needs to consider logic such as caching, partitioning, and sharding (implementation may not be needed initially, but should be easily extensible later). Since the requirement for query timeliness is not high, MySQL master-slave mode can be used to improve query performance; for functions where real-time or data integrity requirements are not high, asynchronous methods (such as message queues) can be used.