Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

API Review for Simmy in v8 #1571

Closed
wants to merge 3 commits into from
Closed

API Review for Simmy in v8 #1571

wants to merge 3 commits into from

Conversation

martintmk
Copy link
Contributor

Details on the issue fix or feature implementation

Based on #1459

Confirm the following

  • I started this PR by branching from the head of the default branch
  • I have targeted the PR to merge into the default branch
  • I have included unit tests for the issue/feature
  • I have successfully run a local build

@martintmk martintmk added the v8 Issues related to the new version 8 of the Polly library. label Sep 8, 2023
@martintmk martintmk added this to the v8.0.0 milestone Sep 8, 2023
@martintmk
Copy link
Contributor Author

cc @martincostello, @joelhulen, @vany0114

@codecov
Copy link

codecov bot commented Sep 8, 2023

Codecov Report

All modified and coverable lines are covered by tests ✅

Comparison is base (98f29c8) 84.53% compared to head (83f12df) 84.53%.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1571   +/-   ##
=======================================
  Coverage   84.53%   84.53%           
=======================================
  Files         307      307           
  Lines        6777     6777           
  Branches     1043     1043           
=======================================
  Hits         5729     5729           
  Misses        839      839           
  Partials      209      209           
Flag Coverage Δ
linux 84.53% <ø> (ø)
macos 84.53% <ø> (ø)
windows 84.53% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.


namespace Polly.Simmy;

public abstract class MonkeyStrategy : ResilienceStrategy
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Top Level Comment:
There are 3 terms in this PR that basically represent the same thing:

  • Monkey
  • Simmy
  • Chaos

Do you think we can consolidate and align this somehow?

@martintmk I think all of them are still valid tho, I mean from a brand standpoint if you will, back when Simmy was conceived, kinda the reasoning or the slogan was "Simmy is a monkey to create chaos" and it was developed mapping that, meaning that the Monkey is the one in charge to unleash the chaos as the more basic chaos unit let's say, thus the public base class that consumer can extend to implement their own monkies, for instance, I might want a monkey called Caesar that implements a strategy to stop nodes in a K8s cluster. Now, Simmy is our monkey implementation that offers a set of common chaos strategies.

@joelhulen thoughts?

Moved the this from the #1459 PR.

Alternative naming:

  • Polly.Simmy -> Polly.Chaos (namespace)
  • MonkeyStrategy -> ChaosStrategy
  • MonkeyStrategy<T> -> ChaosStrategy<T>

Personally, I feel this is a cleaner naming, but Simmy would lose the branding and effective dissolve into Polly.

@vany0114, @martincostello, @joelhulen

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have no strong thoughts on branded vs. not, but I agree that the naming should be consistent whichever is chosen.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My two cents is that Simmy has been around for a few years now, and there's fairly steady traffic to the repo (11 clones and 147 unique visitors in the past two weeks alone, not to mention almost 500 stars). I know that @vany0114 has done a bit of work raising awareness of the project. I also like the monkey logo :) All said, I think there is a bit of brand awareness that I don't think we necessarily need to throw away. However, I like the clarity of the proposed naming. But because of the previous points, I'm OK with sticking to the branded naming as long as, like @martincostello said, we stay consistent in the naming. We also should be very descriptive in the XML document and related published documentation to prevent any confusion.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If both @martincostello and @joelhulen are fine with current API and don't have any other suggestions I am fine exposing Simmy as it is now.

@vany0114 Can you create a tasks to expose Simmy in 8.2.0?

What needs to be done:

  • Make the API public
  • Prepare docs for new chaos strategies

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you create a tasks to expose Simmy in 8.2.0?

@martintmk by "creating the tasks" you mean the PR(s) right?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would be better to create an issue here:
https://github.com/App-vNext/Polly/issues/new/choose

Something like [Feature] Expose the Simmy APIs


namespace Polly.Simmy;

public static class LatencyChaosPipelineBuilderExtensions
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Similar thoughts on the class name here.

@vany0114 vany0114 mentioned this pull request Sep 18, 2023
4 tasks
@vany0114
Copy link
Contributor

@martintmk I think this PR is not a draft anymore right? I guess that's why I cannot mark comments as resolved 🤔

@martintmk
Copy link
Contributor Author

@martintmk I think this PR is not a draft anymore right? I guess that's why I cannot mark comments as resolved 🤔

Strange, maybe I should mark it as ready for review?

@vany0114
Copy link
Contributor

@martintmk I think this PR is not a draft anymore right? I guess that's why I cannot mark comments as resolved 🤔

Strange, maybe I should mark it as ready for review?

Yep I think so.

@martintmk martintmk marked this pull request as ready for review September 20, 2023 17:00
@martintmk martintmk removed the v8 Issues related to the new version 8 of the Polly library. label Sep 27, 2023
@martintmk martintmk modified the milestones: v8.0.0, v8.1.0 Sep 27, 2023
@vany0114 vany0114 mentioned this pull request Oct 9, 2023
4 tasks
@martincostello martincostello modified the milestones: v8.1.0, v8.2.0 Oct 30, 2023
@martincostello martincostello modified the milestones: v8.2.0, v8.3.0 Nov 14, 2023
@martintmk
Copy link
Contributor Author

API changes addressed and will be exposed in #1784

@martintmk martintmk closed this Nov 14, 2023
@martincostello martincostello deleted the ApiReview branch November 14, 2023 15:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
No open projects
Status: Done
Development

Successfully merging this pull request may close these issues.

4 participants