Blog > DevOps > SQL order from API chaos

SQL order from API chaos

It’s hard to believe there’s not a good solution to the problem of API composition. There are so many platforms to help you find APIs, make that initial connection, and even call a single API.

Developing any application in a world powered by SaaS requires you to work with and cater to numerous APIs. That wasn’t always the case.

When I first started out at Apple as an application frameworks engineer, components that people built would render from a single data source, almost always a local database. But by the time I joined the engineering team at Twitter in 2009, the world had moved to an API-driven ecosystem. At Twitter, we used APIs for internal microservice communication as well as to publicize data to external developers. Having to glue together all these APIs, both internal and external, was pure drudgery that resulted in a lot of spaghetti code. Composing APIs for developers who haven’t been working with them for the past decade can be mind-bogglingly complex.

It’s hard to believe there’s not a good solution to the problem of API composition. There are so many platforms to help you find APIs, make that initial connection, and even call a single API. But there is no dedicated platform that helps weave data from APIs together in a streamlined way — while also handling the numerous operational chores required from modern APIs, like authentication, pagination, retries, and so much more.

Introducing Transposit#

This is a layer that needs to exist, and for the past two years, we’ve been building Transposit as the solution to this problem.

Transposit is a zero-ops platform that brings the power of a relational database to the API ecosystem. Our relational engine provides the ability to write SQL and JavaScript to query and transform your data as though each data connection were a virtual table in a single relational database.

While a database has unfettered access to its raw data on disk, APIs protect your data with authentication. To make a relational engine work in this new data landscape, we’ve built in authentication management not only for you as a developer accessing your own data, but also for all your application’s users and their data sources. The result is a seamless way to query data regardless of where it lives.

Transposit abstracts away the details of specific API mechanics and lets you focus on the code that makes your application unique. It does this by allowing you to easily express your intent in a higher-level language of joins and filters, then translating that intent into a number of optimized API calls. It deals with all aspects of communicating with modern APIs such as retries, re-auth, and pagination. It implements security best practices so that you don’t have to. The UI provides an interactive and playful way for you to explore your data as you build your application. For example, teams often use Slack to communicate and triage issues that happen during production incidents. So let’s say you want to make it easy to file a bug in Jira and attach some production logs stored in AWS Cloudwatch, all from within your Slack triage channel.

A Transposit webhook operation that files an issue in Jira with Cloudwatch logs

To do this without Transposit, you would need to learn the intricacies of the Jira, AWS, and Slack APIs. You’d also need to host a server to receive the Slack webhook, securely store credentials, and implement a bunch of tedious logic. All this work makes it too daunting and too frustrating to build — even though this would be an amazing time saver during an actual incident.

Enter Transposit: now you have the ability to rapidly compose logic across multiple APIs without having to handle any of the API complexities. You can quickly build an application and have Transposit manage all of the deployment details. The joy of Transposit is that it’s fast and fun to turn your idea into an application, and it’s also easy to debug, improve, and share it with others.

Get insights from Transposit in your inbox monthly.

Subscribe

< Back to the blog