Distributed systems are hard to build. Really hard. It’s one of the few aspects of computer science that you can’t hide with a thin layer of software. However, as applications scale, distribution becomes a necessity. It is needed as data and compute requirements grow. And it’s needed to move workloads closer to the users as applications go global. The most sophisticated companies have traditionally hired distributed systems experts to tackle these problems. And even then it takes a tremendous amount of time, resources, and often downtime to get it right.
While there are a wide range of challenges to scaling and distributing an application perhaps the trickiest is managing shared global state. While only the most sophisticated backend teams adequately support global state in front end applications, global state itself is a trivially simple concept. It’s just state used by a program — for example a counter that counts the total number of visitors to a website — that’s updated and maintained correctly despite being read and modified by front-end programs wherever they are running. Shared global state is required to build anything but the most basic, static applications.
Big architectural shifts in the industry have made the problem even more acute. We’re seeing a broad “delamination” of the application stack. Traditionally applications have been relatively monolithic — built largely as tight clusters running in the cloud — but trends such as the JAMstack and serverless are pushing application logic to the edge. This puts power in the hands of front end developers to build rich applications, and it offers a more performant user experience. However, along with this shift comes the need for more and more global state!
Thus, if you’re a developer building a website using say Netlify or Vercel, and you don’t just happen to have a seasoned backend team who has spent years constructing the services, you really don’t have many (any?) good options for managing global distributed state. Most commonly front-end devs resort to using a database: a super clunky solution that is slow, complex and is far better suited for queries over large amounts of data than handling state tied directly to a program’s logic.
I’ll be honest, when the founders first approached me with the idea, I didn’t believe it was possible. However, I had previously interacted with James Cowling, one of the founders, when we were both PhD students. At the time he was at MIT studying distributed systems under Barbara Liskov. And I knew the other two founders, Jamie Turner and Sujay Jayakar, by reputation as some of the smartest and most experienced backend developers in the industry. So if there was ever a team who could crack this problem, they were it.
It really is such a pleasure to announce that we are leading the Convex series A and I will be joining the board. With application development moving quickly to the edge, we as an industry need better methods to enable front end devs to manage their global state. And we believe Convex is the best solution for just that.
The views expressed here are those of the individual AH Capital Management, L.L.C. (“a16z”) personnel quoted and are not the views of a16z or its affiliates. Certain information contained in here has been obtained from third-party sources, including from portfolio companies of funds managed by a16z. While taken from sources believed to be reliable, a16z has not independently verified such information and makes no representations about the enduring accuracy of the information or its appropriateness for a given situation. In addition, this content may include third-party advertisements; a16z has not reviewed such advertisements and does not endorse any advertising content contained therein.
This content is provided for informational purposes only, and should not be relied upon as legal, business, investment, or tax advice. You should consult your own advisers as to those matters. References to any securities or digital assets are for illustrative purposes only, and do not constitute an investment recommendation or offer to provide investment advisory services. Furthermore, this content is not directed at nor intended for use by any investors or prospective investors, and may not under any circumstances be relied upon when making a decision to invest in any fund managed by a16z. (An offering to invest in an a16z fund will be made only by the private placement memorandum, subscription agreement, and other relevant documentation of any such fund and should be read in their entirety.) Any investments or portfolio companies mentioned, referred to, or described are not representative of all investments in vehicles managed by a16z, and there can be no assurance that the investments will be profitable or that other investments made in the future will have similar characteristics or results. A list of investments made by funds managed by Andreessen Horowitz (excluding investments for which the issuer has not provided permission for a16z to disclose publicly as well as unannounced investments in publicly traded digital assets) is available at https://a16z.com/investments/.
Charts and graphs provided within are for informational purposes solely and should not be relied upon when making any investment decision. Past performance is not indicative of future results. The content speaks only as of the date indicated. Any projections, estimates, forecasts, targets, prospects, and/or opinions expressed in these materials are subject to change without notice and may differ or be contrary to opinions expressed by others. Please see https://a16z.com/disclosures for additional important information.