A New Architecture for Plaid Link: Server-Driven UI with Directed Graphs
Plaid has introduced a new architecture for its Link SDK, which is used by developers to connect their apps with users' bank accounts. The original design of the Plaid Link SDK contained all user interface (UI) and business logic for the user experience and called internal backend endpoints to fetch localized data, authenticate users, and ultimately return a public token for the customer application to use with the Plaid API. However, as the number of features and fixes increased, this design became an impediment to velocity, quality, and ease-of-integration. To address these issues, Plaid rebuilt the foundation behind the Plaid Link SDK by moving all logic to the backend so it could be shared across Web, iOS, and Android. More importantly, they moved all user experience logic into a no-code directed graph data model and transformed the client-side SDK into a focused rendering engine. This new architecture is called "Flexible Link" or "Flex Link". The goals of this project were to provide a better product experience for customers while increasing velocity for Plaid's internal teams, making things easier for customers, better for end users, faster for Plaid, and safer & more reliable. The team used strong boundaries as their guiding principle when designing Flex Link, which directly combats the tendency of code to become complex over time. The benefits of this new architecture include improved observability and reliability due to a single source of truth on the backend, reduced complexity, and higher confidence in end-to-end testing because there is no more experiential logic in the SDKs themselves. The team also learned valuable lessons about choosing constraints carefully, investing in tooling, always having a customer, and ensuring safety during large re-architecture projects.
Company
Plaid
Date published
May 11, 2021
Author(s)
Will Kiefer
Word count
5293
Language
English
Hacker News points
54