5 ms·
> This sort of approach sacrifices real-time latency (which is felt by the user)... By far the biggest contributors to latency in user present operations was e
by cco 5y ago
> This sort of approach sacrifices real-time latency (which is felt by the user)...
By far the biggest contributors to latency in user present operations was either latency in the bank's responses or "stuff" required to integrate with the long tail of banks. In fact we found that latency below ~5 or so seconds was _too_ fast for users to trust, they didn't feel confident that it was working if it returned too quickly. As time wore on, latency grew but it wasn't due to technical issues, it was bank caused.
> ...not to mention the priceless value of simplicity, a system that can fit in the mind of a single experienced developer...
I've got to say that the bank integrations were _amazing_ to work on. The tooling was incredible and it was super easy to work with. If there was a problem with "a bank", you could spin up the entire bank integration stack very simply, took maybe 10 seconds, less if you kept it up to date, and plunk away.
Your point stands for much of the rest of the stack, pretty complicated.
> ...agility (very slow deployment times)
I think it was on the order of single minutes to reach each environment, I don't recall deployment times being onerous.
> ...reliability (Plaid is notorious for having a ~20% fail rate for requests)
Business decision and the difficulty of building on ever shifting sands (banks change things), the problems are not technical.
- _xnmw 5y ago> I've got to say that the bank integrations were _amazing_ to work on. The tooling was incredible and it was super easy to work with. If there was a problem with "a bank", you could spin up the entire bank integration stack very simply, took maybe 10 seconds, less if you kept it up to date, and plunk away. Care to elaborate? From my experience as a Plaid customer, bank integrations seem extremely finicky, unpredictable and buggy. I have support cases going back months which should've been simple fixes (the bug was acknowledged, yet not fixed). > I think it was on the order of single minutes to reach each environment, I don't recall deployment times being onerous. I'm referring to the Plaid blog post linked above, which claimed that deployment times were slow.
- cco 5y ago> Care to elaborate? From my experience as a Plaid customer, bank integrations seem extremely finicky, unpredictable and buggy. I have support cases going back months which should've been simple fixes (the bug was acknowledged, yet not fixed). For some of my time I worked on the support team, so trust me, I feel your pain! I may have even been the one to say, "Sorry, no ETA" :( I share in your frustration with slow bug fixes as well, I was always banging the drum to get more engineers on the problem but it is definitely worth appreciating the scale and complexity. 10,000 banks, each bank has tens to hundred of account types, banks get bought, merged, change their backend. Brokerages also carry a gigantic chunk of complexity, you'd think stock tickers are standardized across brokerages, but absolutely not! And pulling consistent security prices, even just end of day, very complicated. You start to do the scaling math and you quickly realize that you can't fund _every_ bug fix, it just isn't feasible. With that said, do they fund it enough? My opinion is no, more resources should be assigned to fixing bank integrations. But I don't cut the checks ;) re:deploys The deploy times were slow for awhile, I forget for how long, they grew to maybe 20-30 minutes? But for most of my time they were _fast_. And you got a nice Slack message when they hit different envs so you could be doing something else and come back to watch the outcome/test when you got the ping.
- _xnmw 5y agoI appreciate the scale of the problem, but that is Plaids entire business. Bank integration is literally their product, and so if they don’t fix bank integration problems then why does Plaid exist? I wanted to know how the bank integration process works, technically speaking. Was it a Selenium/Puppeteer setup?