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

[Projects] Simplify shared props & split Microsoft.Azure.EventHubs.Processor dependency #311

Closed

Conversation

NickCraver
Copy link
Member

Draft PR for discussion of #310

I figured this was the easiest way to envision what a split looks like, so starting a PR to help discussion on what ties remain problematic.


This is the hopefully happy path proposal of splitting the dependency to defer the upgrade.

Overall changes:

  • Utilized Directory.Build.props to DRY up projects (and misc. associated changes like one icon.png file, etc.)
  • Creates a new DurableTask.Netherite.EventHubs project which is the only thing depending on Microsoft.Azure.EventHubs.Processor.
  • Moves all EventHubs code possible to DurableTask.Netherite.EventHubs

The problem here is there are still a few refs in core classes we have to figure out:

  • ScalingMonitor is calling EventHubsConnections.GetQueuePositionsAsync to see if work is left
  • FasterStorageProvider is calling EventHubsUtil.DeleteEventHubIfExistsAsync to cleanup partition hubs to ensure queues start at zero

image

Other than those 2 usages, the split is pretty clean here. I do recommend we fully drop netcoreapp2.2 though - I assume based on comments and other cleanup that has happened it's explicitly here for a reason I don't understand, happy to understand that and maybe advise on some alternatives to clean up the build if we still need to keep it around.

…ocessor dependency

Overall changes:
- Utilized Directory.Build.props to DRY up projects (and misc. associated changes like one icon.png file, etc.)
- Creates a new DurableTask.Netherite.EventHubs project which is the only thing depending on Microsoft.Azure.EventHubs.Processor.
- Moves all EventHubs code possible to DurableTask.Netherite.EventHubs

The problem here is there are still a few refs in core classes we have to figure out:
- `ScalingMonitor` is calling `EventHubsConnections.GetQueuePositionsAsync` to see if work is left
- `FasterStorageProvider` is calling `EventHubsUtil.DeleteEventHubIfExistsAsync` to cleanup partition hubs to ensure queues start at zero

Other than those 2, the split is pretty clean here. I do recommend we fully drop `netcoreapp2.2` though - I assume based on comments and other cleanup that has happened it's explicitly here for a reason I don't understand, happy to understand that and maybe advise on some alternatives to clean up the build if we still need to keep it around.
@NickCraver
Copy link
Member Author

cc @cgillum @sebastianburckhardt

@sebastianburckhardt
Copy link
Member

I think we now have addressed this. The most urgent problem (scale controller conformance) has been solved by updating the scale controller selectively, I believe. As for the rest of the codebase, we now have a PR that updates all uses of the SDK here: #385

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants