RFP 17: Scala client contribution — feedback on scope and existing tooling
- ayushmishra2005OP
Hi everyone,
I’m Ayush Kumar Mishra, an independent developer exploring a Scala client contribution under RFP 17 — SDKs in different languages. Dr. Amanda Martin kindly recommended bringing this discussion to the forum for input from the Daml Language & Developer Tooling SIG and other Canton developers.
What I’m trying to establish
The Development Fund roadmap identifies Scala as lacking a known fully featured SDK. However, existing Scala Ledger API components, including
ledger-api-core_2.13, and maintained Java bindings/codegen already provide substantial functionality.I would like to identify the specific missing capabilities that would make a Scala contribution useful to application teams.
A possible starting scope
One direction is a small, documented Scala-facing client library that reuses existing JVM components and Java-generated Daml contract types, with working examples, integration tests and a clear compatibility policy.
For example, a Scala service needs to submit a command, determine its outcome if the connection drops, and resume consuming ledger updates after reconnecting. I’d like to understand whether existing supported components already make this straightforward, or whether teams repeatedly implement their own solutions.
Command recovery, stream reconnection and authentication lifecycle handling are areas to investigate—not gaps I’m assuming are missing.
Questions for maintainers and application developers
-
What concrete problems do Scala/JVM application teams face with the existing Canton client tooling? Examples of custom integration code or difficult workflows would be particularly helpful.
-
Which existing components should an external Scala application use? In particular, is
ledger-api-core_2.13intended as a supported public application API? -
Is related work already underway, and would the useful contribution belong upstream or in a separate library?
-
Would anyone be interested in reviewing a short scope or evaluating a small prototype against an actual application workflow?
My background
I have approximately 11 years of hands-on Java and Scala experience, including Scala/Akka work for Bank of America Merrill Lynch through Knoldus, production Daml development at Knoldus, and ecosystem engineering at Parity Technologies.
My public Canton-related work includes:
-
Canton Treasury DvP: a settlement prototype covering multi-party authorization, privacy and contract reassignment.
-
Canton Treasury AMM: a privacy-aware, multi-party AMM prototype.
-
Agentic Protocol Security Lab: AI-assisted invariant analysis and adversarial Daml Script testing.
These projects provide background on my experience. I’m seeking feedback on a fresh contribution before defining a Development Fund proposal, and I’m open to collaborating with an existing effort.
Thank you for your time. Concrete examples, corrections and pointers to relevant work would all be appreciated.
Ayush Kumar Mishra
GitHub -