-
Notifications
You must be signed in to change notification settings - Fork 92
Description
Hello everyone and thanks a lot for your great work!
I am already looking forward to integrate SOFA into our GraphQL-architecture.
But before doing so, we must ensure that SOFA can fulfill all of our requirements, and since this is an (awesome) Open Source project I would love to integrate my proposals into the package as optional settings. These would be my goals:
Custom OpenAPI Scalars
As described in FEATURE REQUEST Missing functionality to represent user scalars as swagger types I would love to have the possibility to transform our custom Scalars (Mongoose-ObjectID, DateTimeISO and JSON) into defined OpenAPI Types.
Optimized Web-Hooks/Subscriptions
Since we want to scale our product, it must be possible for us to run different instances of SOFA-APIs on different pods in Kubernetes. In the case that a pod closes, we have to ensure, that the subscription/web-hook is persisted somehow, preferrable on redis or mongoDB, marked as "observed" by one instance, and "unobserved" when an instance is closing, so another instance can grab and "observe" it again. When building this I would also integrate the possibility to send a header-like object on subscribing, which authorizes the web-hook when sending the data back.
What do you think about these changes? Anything else to consider?
Of course these will be optional settings, so anything will work as usual when not including "my" custom settings.
And since this is one of my first open source contributions, I maybe need some guidance on how to do it:
As far as I know, I would go and create new branches per feature and commit the features and depending tests on them, maybe even with GitHub Codespaces. Afterwards I'll publish the two Pull Requests, explaining what I did.
And because this might be kind of urgent, what could I expect on how much time it would take for you guys to merge and publish these changes into any npm-installable build? I would start in around 3-4 weeks, take maybe one week, and it would be awesome to have it installable in something around 4 weeks after PR. Is that possible?
Best regards,
Paul