Hi Willem,

Thanks for your help. We believe Saga will benefit Sharding-Sphere a lot.
I've studied Saga these days, and found it's convenient for users to start up 
services by docker. While SS provide services by a jar package and most likely 
wouldn't force users to adopt docker. Are there any demos or guide without 
docker?
I noticed there are several services in docker, I wonder are all services 
indispensable for SS? Is it possible to release the dependencies of 
service-center and web?



Thanks,
Yonglun



At 2018-07-02 22:49:22, "Willem Jiang" <willem.ji...@gmail.com> wrote:
>Hi Yonglun,
>
>It's great that Saga can be part of Sharding-Sphere solution.
>Current we can update the json data formate to support the parameter of SQL.
>And we just need to implement SQL invocation (transport) in Saga, then you
>can just tell Saga executor to do the invocation job for you.
>
>I will try to add some sample code to show the whole idea tomorrow.
>
>
>Willem Jiang
>
>Twitter: willemjiang
>Weibo: 姜宁willem
>
>On Mon, Jul 2, 2018 at 9:51 PM, 张永伦 <15810310...@163.com> wrote:
>
>> Hi all,
>>
>>
>> I'm a developer from Sharding-Sphere(https://github.com/sharding-sphere).
>> I'd like to make a proposal on integrating Sharding-Sphere(SS) with Saga.
>>
>>
>> SS starts a transaction via Saga API(https://github.com/apache/
>> incubator-servicecomb-saga/blob/old-saga/docs/api/api.md). The API looks
>> like this:
>> {
>>   "policy": "",
>>   "requests": [
>>     {
>>       "id": "",
>>       "type": "",
>>       "serviceName": "",
>>       "parents": [
>>
>>       ],
>>       "transaction": {
>>         "method": "",
>>         "path": "",
>>         "params": {
>>
>>         }
>>       },
>>       "compensation": {
>>         "method": "",
>>         "path": "",
>>         "params": {
>>
>>         }
>>       }
>>     }
>>   ]
>> }
>> Logic SQLs in a SS transaction will be treated as one Saga Request
>> separately. Users of SS should supply the compensatory SQLs correspondingly:
>> transaction:
>> INSERT INTO `t_order` (`order_id`, `user_id`, `status`) VALUES (?, '10',
>> 'INIT');
>> compensation:
>> DELETE FROM `t_order` WHERE `order_id`=?;
>>
>>
>> SS need to implement method of both transaction and compensation for Saga.
>> The path parameter seems to have no use for SS, and should be ignored.
>>
>>
>> The content of params should include SQL and the parameter of SQL, may
>> implement by currently form parameters.
>>
>>
>> At last, id and serviceName will be generated by SS uniquely. Saga can use
>> these identifier to find transactions.
>>
>>
>>
>>
>> Thanks,
>> Zhang Yonglun

Reply via email to