microsoft / hack-together

Hack Together: Microsoft Graph and .NET is a hackathon for .NET developers to learn Microsoft Graph and Microsoft 365.
MIT License
523 stars 85 forks source link

Project: Graph SDK Batching improvement #47

Open svrooij opened 1 year ago

svrooij commented 1 year ago

Project name

Batching improvements in the Graph SDK SvRooij.Graph.Batching

Description

The Graph SDK has support for Batching, which is a great idea when you are doing a lot of requests to Graph. By batching requests you can achieve much higher throughput.

GraphServiceClient extension to help with Batching

The batch implementation in the GraphServiceClient feels incomplete, by default the GraphServiceClient let's you combine up to 20 requests before throwing an exception. By using this extension you can combine "unlimited" requests and have this extension automatically splits up the requests in multiple batches. While staying very close to the original implementation.

For now this is just an additional nuget package, if a lot of people like it I might create a pr to have this included in the actual client.

After a lot of positive responses and this issue this code is now integrated in the Microsoft.Graph.Core started from version 3.0.1, which is in turn used by Microsoft.Graph version 5.0.1

Useful resources

In this project everybody can check-out the following resources to use themself

Watch the video

Repo URL

https://github.com/svrooij/msgraph-sdk-dotnet-batching/

Team members

svrooij

waldekmastykarz commented 1 year ago

Cool! I shared it also with the PG to take a look. Thank you for sharing!

svrooij commented 1 year ago

The PR to the SDK got merged, that means developers will no longer need this extension in the near future. But for now, if you want to do anything with batching just install the related nuget and get hacking at this moment.

When the graph SDK is updated, you'll just have to remove my package and the BatchRequestContentCollection will just be available in the sdk

waldekmastykarz commented 1 year ago

This is awesome! Congratulations @svrooij 👏

waldekmastykarz commented 1 year ago

Hey @svrooij, would you mind recording a short video walkthrough of your hack? Any format will work. It's not required for the hackathon but it would help us showcase your work both internally at Microsoft and publicly in the community. 😊

svrooij commented 1 year ago

@waldekmastykarz I've created a video to show the speed improvement. if you need the actual video file, just send me a message.

Watch the video

The demo code, from the video can be found in the repository

waldekmastykarz commented 1 year ago

Awesome! The video reminds of these all text-based adventure games. "Press enter to start" 🤩

svrooij commented 1 year ago

This gives the user the option to see the results in their task list. Else adding and removing would happen in rapid succession and there would not be anything to see.