Re: [DISCUSSION][Toolkit] Prepare to release 0.2.0

2019-11-25 Thread Shuo Chen
+1 looking forward to  corresponding articles too

Daniel Qian  于2019年11月26日周二 下午3:34写道:

> +1 looking forward to toolkit 0.2.0
>
> sen sun  于2019年11月26日周二 上午11:16写道:
> >
> > Hi toolkit team,
> >
> > We have developed many new features, I think it's time to release 0.2.0
> > Our new features are as follows:
> >  * oas-validator for compliance check
> >  * oas-validator for compatibility check
> >  * new oas-generator for generating contract from code
> >  * support openapi v3
> >  * support generate springcloud microservice project
> >  * etc ...  I may not list enough, I hope everyone can add what you know
> >
> > What do you think about releasing 0.2.0?
> >
> > If everyone agrees to release a new version, we may start to do some
> work:
> >  * make sure the license is ok
> >  * make sure our features are complete
> >  * make sure our tests are complete
> >  * etc ... I may not list enough, I hope everyone can add what you know
> >
> > If not, maybe we need to discuss what needs to be done to get it to
> release
> >
> >
> > And I attach the information for reference. This is the roadmap for the
> > previous community discussions:
> >  *
> >
> https://lists.apache.org/thread.html/5048ca4aa778b13952cefcd32ec25be24eb38eb8424f24c80340183b@%3Cdev.servicecomb.apache.org%3E
> >
> > Any ideas are welcome
>
>
>
> --
> Daniel Qian
> Apache Committer(chanjarster)
> blog:https://chanjarster.github.io
> github:https://github.com/chanjarster
> segmentfault: https://segmentfault.com/u/chanjarster
>


Re: [DISCUSSION][Toolkit] Prepare to release 0.2.0

2019-11-25 Thread Daniel Qian
+1 looking forward to toolkit 0.2.0

sen sun  于2019年11月26日周二 上午11:16写道:
>
> Hi toolkit team,
>
> We have developed many new features, I think it's time to release 0.2.0
> Our new features are as follows:
>  * oas-validator for compliance check
>  * oas-validator for compatibility check
>  * new oas-generator for generating contract from code
>  * support openapi v3
>  * support generate springcloud microservice project
>  * etc ...  I may not list enough, I hope everyone can add what you know
>
> What do you think about releasing 0.2.0?
>
> If everyone agrees to release a new version, we may start to do some work:
>  * make sure the license is ok
>  * make sure our features are complete
>  * make sure our tests are complete
>  * etc ... I may not list enough, I hope everyone can add what you know
>
> If not, maybe we need to discuss what needs to be done to get it to release
>
>
> And I attach the information for reference. This is the roadmap for the
> previous community discussions:
>  *
> https://lists.apache.org/thread.html/5048ca4aa778b13952cefcd32ec25be24eb38eb8424f24c80340183b@%3Cdev.servicecomb.apache.org%3E
>
> Any ideas are welcome



-- 
Daniel Qian
Apache Committer(chanjarster)
blog:https://chanjarster.github.io
github:https://github.com/chanjarster
segmentfault: https://segmentfault.com/u/chanjarster


[DISCUSSION][Toolkit] Prepare to release 0.2.0

2019-11-25 Thread sen sun
Hi toolkit team,

We have developed many new features, I think it's time to release 0.2.0
Our new features are as follows:
 * oas-validator for compliance check
 * oas-validator for compatibility check
 * new oas-generator for generating contract from code
 * support openapi v3
 * support generate springcloud microservice project
 * etc ...  I may not list enough, I hope everyone can add what you know

What do you think about releasing 0.2.0?

If everyone agrees to release a new version, we may start to do some work:
 * make sure the license is ok
 * make sure our features are complete
 * make sure our tests are complete
 * etc ... I may not list enough, I hope everyone can add what you know

If not, maybe we need to discuss what needs to be done to get it to release


And I attach the information for reference. This is the roadmap for the
previous community discussions:
 *
https://lists.apache.org/thread.html/5048ca4aa778b13952cefcd32ec25be24eb38eb8424f24c80340183b@%3Cdev.servicecomb.apache.org%3E

Any ideas are welcome


Re: Improve the transaction compensation mechanism for FSM

2019-11-25 Thread Zhang Lei
Hi,

Yes, they are  class exception, Maybe the following name will be better

class BusinessCompensationFailureException
class OmegaConnectedException

My idea is to catch an exception and send a compensation result in the
compensation method[1] on the Omega side. You can see it in the following
TODO position

public void apply(String globalTxId, String localTxId, String
callbackMethod, Object... payloads) {
  CallbackContextInternal contextInternal = contexts.get(callbackMethod);
  String oldGlobalTxId = omegaContext.globalTxId();
  String oldLocalTxId = omegaContext.localTxId();
  try {
omegaContext.setGlobalTxId(globalTxId);
omegaContext.setLocalTxId(localTxId);
contextInternal.callbackMethod.invoke(contextInternal.target, payloads);
LOG.info("Callback transaction with global tx id [{}], local tx id
[{}]", globalTxId, localTxId);

// TODO send TxCompensateSucceedAckEvent to Alpha

  } catch (IllegalAccessException | InvocationTargetException e) {
LOG.error(
"Pre-checking for callback method " +
contextInternal.callbackMethod.toString()
+ " was somehow skipped, did you forget to configure callback
method checking on service startup?",
e);

// TODO send TxCompensateFailedAckEvent to Alpha

  } finally {
omegaContext.setGlobalTxId(oldGlobalTxId);
omegaContext.setLocalTxId(oldLocalTxId);
  }
}


Alpha waits for compensation result and catching exception after calling
compensation method

1. Received TxCompensateSucceedAckEvent: transaction completed
2. Received TxCompensateFailedAckEvent: throw
BusinessCompensationFailureException
3. catch other exception throw OmegaConnectedException


[1]
https://github.com/apache/servicecomb-pack/blob/a89c7cd8b416c9b281fdbe28644cb6b7e2e78f91/omega/omega-context/src/main/java/org/apache/servicecomb/pack/omega/context/CallbackContext.java#L43

[2]
https://github.com/apache/servicecomb-pack/blob/694b8d701097226d898e7a342c902ff711caa3cf/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/GrpcOmegaCallback.java#L35


Best regards,
Lei Zhang

On November 25, 2019 at 7:49:47 PM, Zheng Feng (zh.f...@gmail.com) wrote:

Hi,

I wonder how we can diff the "Omega compensation failure" from the
"Business compensation failure" ? the different exception classes ?

Zhang Lei  于2019年11月25日周一 下午5:32写道:

> Hi, Pack Team
>
> Currently, Alpha compensation mechanism has some defects [1], I plan to
> solve this problem step by step [2]
>
> Step1: Modify the OnConnected method to bidirectional streaming RPC
>
> This will be needed for the Step2
>
> Step2: Custom compensation exception rules to distinguish between
business
> compensation exceptions and framework compensation exceptions for FSM.
>
> After calling the compensation method, Alpha needs to wait for
> Omega to send a compensation result message. The message type is as
> follows:
>
> Successful compensation:
> Business compensation failure:business code throws an exception,
> Do not switch Omega instance and retry(Retry rule is implemented in the
> Step3)
> Omega compensation failure: omega code throws an exception,
> switch other Omega instance and retry(Retry rule is implemented in the
> Step3)
>
>
> Step3. Added retry and timeout rule to compensate for failures
>
> Exceeded the number of retries or timeout will change state to
> suspended
>
> Any Suggestion?
>
> [1] https://github.com/apache/servicecomb-pack/issues/590
> [2] https://github.com/apache/servicecomb-pack/pull/607
>
> Best regards,
> Lei Zhang
>
>
> Best regards,
> Lei Zhang
>


Re: Improve the transaction compensation mechanism for FSM

2019-11-25 Thread Zheng Feng
Hi,

I wonder how we can diff the "Omega compensation failure" from the
"Business compensation failure" ? the different exception classes ?

Zhang Lei  于2019年11月25日周一 下午5:32写道:

> Hi, Pack Team
>
> Currently, Alpha compensation mechanism has some defects [1], I plan to
> solve this problem step by step [2]
>
> Step1: Modify the OnConnected method to bidirectional streaming RPC
>
>This will be needed for the Step2
>
> Step2: Custom compensation exception rules to distinguish between business
> compensation exceptions and framework compensation exceptions for FSM.
>
>After calling the compensation method, Alpha needs to wait for
> Omega to send a compensation result message. The message type is as
> follows:
>
>Successful compensation:
>Business compensation failure:business code throws an exception,
> Do not switch Omega instance and retry(Retry rule is implemented in the
> Step3)
>Omega compensation failure: omega code throws an exception,
> switch other Omega instance and retry(Retry rule is implemented in the
> Step3)
>
>
> Step3. Added retry and timeout rule to compensate for failures
>
>Exceeded the number of retries or timeout will change state to
> suspended
>
> Any Suggestion?
>
> [1] https://github.com/apache/servicecomb-pack/issues/590
> [2] https://github.com/apache/servicecomb-pack/pull/607
>
> Best regards,
> Lei Zhang
>
>
> Best regards,
> Lei Zhang
>


Re: [DISCUSSION][Website] Optimization

2019-11-25 Thread Xiaoliang Tian
do not use markdown to write documents, use sphinx, a powerful doc
framework, and as I go through jekyll framework, I think we can still use
it. but need to refactor code of website

Liubao (A)  于2019年11月20日周三 下午5:11写道:

> Documents  are http://servicecomb.apache.org/ &
> https://docs.servicecomb.io/java-chassis/en_US/index.html
> related source repo: https://github.com/apache/servicecomb-website &
> https://github.com/apache/servicecomb-docs
>
> -邮件原件-
> 发件人: Shuo Chen [mailto:sureche...@gmail.com]
> 发送时间: 2019年11月20日 15:43
> 收件人: dev@servicecomb.apache.org
> 主题: Re: [DISCUSSION][Website] Optimization
>
> Can you list the documents we have had and need to write in the future?
>
> Liubao (A)  于2019年11月20日周三 下午3:41写道:
>
> > How about using gitbook? Because markdown is easier to edit(the user
> > manual  using markdown and gitbook) .  I find official website using
> > Jekyll is quite difficult to update the contents, although the website
> > is more beautiful than gitbook.
> >
> > -邮件原件-
> > 发件人: victor chan [mailto:victorchan...@gmail.com]
> > 发送时间: 2019年11月20日 15:33
> > 收件人: yhs0092 
> > 主题: Re: [DISCUSSION][Website] Optimization
> >
> > Tools to transform your plain text into static websites, like jekyll,
> > sphinx, etc.
> >
> > sen sun  于2019年11月20日周三 下午3:31写道:
> >
> > > What is "documentation framework"?
> > >
> > > sen sun  于2019年11月20日周三 下午3:26写道:
> > >
> > > > Agree with your suggestion.
> > > > The official website has not been updated for a long time. It’s
> > > > time to
> > > do
> > > > it.
> > > >
> > > > victor chan  于2019年11月20日周三 下午3:17写道:
> > > >
> > > >> I am doing website optimization, I have some ideas, I look
> > > >> forward to
> > > your
> > > >> suggestions.
> > > >> 1. I think we need to bring together the documents for our projects.
> > > >> 2. We need to merge the "user manual" and the "getting started".
> > > >> Now,
> > > they
> > > >> are displayed separately on the website, which will make the user
> > > >> read discontinuous.
> > > >> 3. We need to use the same documentation framework in each
> > > >> project so
> > > that
> > > >> they can be easily integrated into the website.
> > > >>
> > > >
> > >
> >
>


Improve the transaction compensation mechanism for FSM

2019-11-25 Thread Zhang Lei
Hi, Pack Team

Currently, Alpha compensation mechanism has some defects [1], I plan to
solve this problem step by step [2]

Step1: Modify the OnConnected method to bidirectional streaming RPC

   This will be needed for the Step2

Step2: Custom compensation exception rules to distinguish between business
compensation exceptions and framework compensation exceptions for FSM.

   After calling the compensation method, Alpha needs to wait for
Omega to send a compensation result message. The message type is as follows:

   Successful compensation:
   Business compensation failure:business code throws an exception,
Do not switch Omega instance and retry(Retry rule is implemented in the
Step3)
   Omega compensation failure: omega code throws an exception,
switch other Omega instance and retry(Retry rule is implemented in the
Step3)


Step3. Added retry and timeout rule to compensate for failures

   Exceeded the number of retries or timeout will change state to
suspended

Any Suggestion?

[1] https://github.com/apache/servicecomb-pack/issues/590
[2] https://github.com/apache/servicecomb-pack/pull/607

Best regards,
Lei Zhang


Best regards,
Lei Zhang


Improve the transaction compensation mechanism for FSM

2019-11-25 Thread Zhang Lei
Hi, Pack Team

Currently, Alpha compensation mechanism has some defects [1], I plan to
solve this problem step by step [2]

Step1: Modify the OnConnected method to bidirectional streaming RPC

   This will be needed for the Step2

Step2: Custom compensation exception rules to distinguish between business
compensation exceptions and framework compensation exceptions for FSM.

   After calling the compensation method, Alpha needs to wait for
Omega to send a compensation result message. The message type is as follows:

   Successful compensation:
   Business compensation failure:business code throws an exception,
Do not switch Omega instance and retry(Retry rule is implemented in the
Step3)
   Omega compensation failure: omega code throws an exception,
switch other Omega instance and retry(Retry rule is implemented in the
Step3)


Step3. Added retry and timeout rule to compensate for failures

   Exceeded the number of retries or timeout will change state to
suspended

Any Suggestion?

[1] https://github.com/apache/servicecomb-pack/issues/590
[2] https://github.com/apache/servicecomb-pack/pull/607

Best regards,
Lei Zhang