That’s a fair point — with more languages in the mix, having a formal schema can definitely help prevent drift.
The way I think about it is:
• Single‑language projects often work best without an IDL — it keeps things simple and avoids extra steps.
• Two languages – both IDL and no‑IDL approaches can work, depending on the team’s habits.
• Three or more – an IDL can be really useful as a single source of truth and to avoid manually writing struct definitions in every language.
For Apache Fory, my plan is to add optional IDL support, so teams who want that “single truth” can generate definitions automatically, and others can continue with language‑first development. My hope is to give people flexibility to choose what fits their situation best.