Some backstory: We were searching for an open-source connectivity solution for AnyCable Pro running on Fly.io to enable synchronization between nodes in a cluster. Our journey led us to NATS, a highly performant connectivity technology for distributed systems.
NATS was a joy to work with, so we couldn’t help but offer our consulting services.
It turned out that the Ruby SDK of NATS wasn’t on par performance-wise, and we ended up speeding it up by more than three times for high-load cases–a significant achievement for NATS!
This was a major enhancement to the client so I appreciate the practical solution that was implemented to boost the client’s performance and scalability.
Wally Quevedo
Synadia Communications, NATS core maintainer
This experience made us realize a critical aspect of developer tools that is often overlooked: the quality and performance of their SDKs can make or break adoption and usability.
Irina Nazarova CEO at Evil Martians
Why do SDKs matter so much?
Before we dive into this case in detail, let’s elaborate a little bit on the topic at hand and why it is important: SDKs are the primary interface between developers and a developer tool’s capabilities, and an inefficient SDK can undermine the performance benefits of even the most optimized product.
Further, poor SDKs lead to frustration, increased development time, and the potential that users will just abandon the tool.
An SDK represents a product to the entire ecosystem. Ideally, an SDK should feel native to its users, adhering to language-specific notations. This is why companies often hire consultants with deep language expertise to handle the heavy lifting; an approach which can lead to amazing developer experience and manageable future maintenance.