Skip to content
This repository has been archived by the owner on Mar 31, 2023. It is now read-only.

Project: Graph SDK Batching improvement #47

Open
svrooij opened this issue Mar 2, 2023 · 7 comments
Open

Project: Graph SDK Batching improvement #47

svrooij opened this issue Mar 2, 2023 · 7 comments
Labels
hack Hackathon project submitted by participants

Comments

@svrooij
Copy link
Contributor

svrooij commented Mar 2, 2023

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 waldekmastykarz added the hack Hackathon project submitted by participants label Mar 3, 2023
@waldekmastykarz
Copy link
Collaborator

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

@svrooij
Copy link
Contributor Author

svrooij commented Mar 7, 2023

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
Copy link
Collaborator

This is awesome! Congratulations @svrooij 👏

@waldekmastykarz
Copy link
Collaborator

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
Copy link
Contributor Author

svrooij commented Mar 14, 2023

@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
Copy link
Collaborator

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

@svrooij
Copy link
Contributor Author

svrooij commented Mar 15, 2023

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.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
hack Hackathon project submitted by participants
Projects
None yet
Development

No branches or pull requests

2 participants