Hacker Newsnew | past | comments | ask | show | jobs | submit | indybonez's commentslogin

We (Speakeasy) recently open-sourced the OpenAPI library we use to generate SDKs and Terraform providers.

We built this because we found existing Go libraries struggled with the "sharp edges" of OpenAPI—specifically dynamic types (polymorphic fields) and complex reference architectures (circular refs/remote files).

This library uses Go generics to maintain strict type safety without losing flexibility and includes native support for the new Arazzo (workflows) and Overlay specifications.

Code is here: https://github.com/speakeasy-api/openapi


The way I have always done this is to write wrappers for all integrations, whether they are via SDK or direct HTTP calls to an API (they were generally called Clients like StripeClient). Each of these wrappers had a common purpose to abstract away the underlying integration (so if we wanted to switch Stripe out for another vendor, the changes were generally more self contained), but these wrappers also allowed us to capture telemetry about our integrations such as usage, versions, services they were called from.

Most of this telemetry either went to Datadog or Prometheus but we could also have them go to a central location that allowed us to build reports on usage and what all our integrations were.

Then we got all the tracking you mentioned for free whenever we implemented a new API. The initial lift was always a bit longer but very much worth it in the end


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: