交易系统架构演进之路(一):1.0版

欢迎关注「Keegan小钢」公众号获取更多文章

前言

近几年,我在资产证券类交易系统领域做得比较多,从2016年开始,在贵金属交易领域深耕了两年,负责的交易平台用户量曾达到几百万,日活也有几十万,日流水更是千万级别。2018年之后,在数字资产交易行业又沉淀了两年,虽然用户量级没达到之前在贵金属交易平台的级别,但因为交易标的明显比在贵金属时多得多,所以整体的并发量和交易量却大得多。

基于我这几年的经验总结,我将以数字资产交易平台为案例,聊聊从 0 到 1 再到 N 的交易系统的架构应该如何不断演进。第一篇文章先从起步阶段开始。

需求分析

任何架构的演进都是由场景驱动的,离开场景谈架构就是耍流氓。因此,做架构设计之前,我们要先了解当下的场景。场景就是需求,一般可以将需求分为三类:商业需求、功能需求和质量需求

商业需求是最高层次的需求,它关注从客户群、企业现状、未来发展、预算、立项、开发、运营、维护在内的整个软件生命周期涉及的商业因素,包括了商业层面的目标、期望和限制等。商业需求一般对架构的影响比较大,对架构产生限制的商业因素也比较多,比较常见的包括:上市时间、成本预算、人力现状、目标市场、阶段性计划、国际化等等。

功能需求描述的就是系统应该提供的服务,包括为用户提供的服务,也包括为其他系统提供的服务,比如开放 API。

质量需求则是技术上的需求了,在三类需求中,一般其需求层次也是最低的,但却是大部分架构师最关注的。质量需求涉及到的属性也比较多,关注最多的比如可用性、性能、安全性、扩展性等等。

对于一个从 0 到 1 的产品来说,大部分情况最受限制的就是成本预算,因此,能投入的人力也比较少,而且上市时间拖得越久成本就越高,所以上市时间也是越快越好。总的来说,产品第一个阶段的核心需求就是,要用最低的成本、最快的速度,设计研发完成产品,并推向市场。要满足此需求,我们只需要开发出一个 **MVP(最小化可行产品)**即可。所谓 MVP,就是只要能让用户完成最简化的核心流程即可,不需要太多考虑优化流程、更好的用户体验等。

那么,对于一个数字资产交易平台来说,其 MVP 最核心的功能就是可以让用户完成资产交易,要能让用户完成交易,最简化的流程就是:

注册 ——> 登录 ——> 入金 ——> 交易 ——> 出金

注册现在主流的有两种方式,一是手机号注册,二是邮箱注册。现在最大的三大数字资产交易所——币安、火币、OKEx,两种注册方式都提供了。不过币安在之前很长一段时间内都只支持邮箱注册。国外的大交易所,也好多都只提供邮箱注册。因此,我们这个 MVP 就先提供邮箱注册即可。

数字资产的入金出金一般有两种途径,一是提供链上的充币提币功能,二是提供场外的法币交易功能。优先提供哪种途径,主要取决于目标用户群体,如果目标用户群体完全是区块链小白,根本不懂怎么进行链上的转账,那就应该优先提供场外的法币交易功能,否则就优先提供链上的充提币功能。主流做法更多是优先提供链上出入金的功能,我们这个案例也如此。那链上出入金,就需要对接不同的区块链,这又需要时间成本,为了最简化,我们可以就只先做一个交易对,ETH/USDT,只先对接以太坊链。

交易其实还有内部流程,用户可以进行下单和撤单。如果下单后没撮合成交,那用户就可以撤单。如果撮合成交了,交易也完成了。

另外,虽然图中只有 5 个流程,但其实还有其他相关的重要功能也需要提供,包括查看行情、查看订单、查看个人资产等。至于其他的周边功能,如重置密码、修改密码、实名认证、邀请注册等,甚至管理后台,都统统先不做。

质量需求方面,也不需要满足太多特性,只要保证服务基本可用,用户的资产相对安全即可。

至此,总结一下,我们的数字资产交易平台,第一个版本的需求分析结果,需要完成的功能需求包括:

  • 邮箱注册:需要用到邮箱验证码,所以还需要有发邮件的功能
  • 登录:简单的邮箱和密码登录即可
  • 充币:需要生成钱包地址和调用区块链的转账接口,第一版只接以太坊链的 ETH 和
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值