随想之一:何为业务操作的原子性?
前言见 架构随想 http://lixin3811.iteye.com/blog/1535662
议题:何为业务操作的原子性?
设计和开发都比较注意通过事务保持操作的原子性,这在单数据库节点规模的系统中,是一种合并操作原子性的做法;虽然有时候是无意的。议题中提出的'业务操作的原子性',例如:填写信用卡申请登记,这是业务上的原子操作;随后的发卡,又是一个业务操作;开通卡是下一个原子操作;这是现实业务操作的步骤;映射到软件系统中,有可能把这些步骤作为一个事务,即创建用户信用卡信息、生成信用卡账户信息、开通支付功能;我认为在逻辑设计阶段,业务操作映射成的业务逻辑,应该清楚的反映这三步,并且在对象的状态机上显式的标记。在实现阶段,如果是单存储节点的系统,可以根据情况合并逻辑步骤。利用数据库的事务保证业务逻辑的原子性。当系统规模扩展到分布式调用或者分布式存储时,该如何保证业务逻辑的原子性。