This time I'll like to introduce an idea, not a complete solution.
Maintain and develop all of those SDKs manually is never-ending work. Even if we'll scale the team and have a team per SDK it will still be hard to maintain because then fragmentation of the different SDKs will happen even more frequently than one team.
After research several directions I've decide to concentrate on using JetBrains Meta Programming System (MPS) to create one meta-language from which we will be able to generate all the different SDKs source code.
It is important to note I'm not trying to generate the entire SDK in each platform, only the parts that are not platform specific which in our case are also the parts that change frequently.
This diagram show the flow
- Building MPS counterpart of each language
- Building TextGen for each language
- Building X language (I haven't found a name yet)
- Building model-to-model transformation for each language
- Build scripts to combine each SDK platform-specific part with the auto-generated part
- Hidden parts that I'm not able to see yet (please leave a comment if you do)