top | item 21821327

The Bloomberg Terminal, Explained

320 points| yarapavan | 6 years ago |vox.com | reply

209 comments

order
[+] dtrailin|6 years ago|reply
Having worked at Bloomberg I really wish there was more content published about how it's implemented because it pretty astonishing in both good and bad ways. For one thing the codebase is ancient there are still some Fortran bits that in use today. However the more modern code is in C/C++ and designed heavily with latency in mind. In particular the feeds are designed to be extremely fast with a few custom built high performance databases built to serve this [0].

The bit that really amazed me was the way the front end is implemented. The front-end is fully rendered server side (meaning every click requires a full round trip to Bloombergs servers) in Javascript using spidermonkey. This caused a lot of difficulties since any real time elements needed to be rendered in a totally different way. As well the version of Javascript was restricted from using things like timers or callbacks since that could make rendering stall. In some ways it's impressive that they were doing server side Javascript at least 5 years before nodeJS but whole approach seems like a byproduct of age of mainframes.

[0] https://bloomberg.github.io/comdb2/overview_home.html

[+] wtetzner|6 years ago|reply
What was the reason for using Javascript to do the server-side rendering (as opposed to another language on the server)? Was it just a preference, or were there some technical reasons?
[+] kjhjkwher|6 years ago|reply
Yes, the Bloomberg Terminal app is basically an Electron app, but built with Bloomberg's equivalent of Electron.

Bloomberg is one of the biggest users of JavaScript in the world, many millions line of code, but most of it used in a desktop app.

[+] amykyta|6 years ago|reply
I’d love to re-read that ancient white paper called ‘Bloomberg in a nutshell’ if anyone has it. It explains the server side architecture which is pretty interesting and terrifying as you said.
[+] swyx|6 years ago|reply
i'd love to read more about how Bloomberg Launchpad was implemented [0]. that seemed like a HUGE departure from the clunky old bloomberg interface. it had all the visualizations you want, excellent snap to grid, and was live updating everything. just amazing for its time.

[0] https://www.bloomberg.com/professional/product/launchpad/

[+] bulldoa|6 years ago|reply
might be a dumb question, but how do you render frontend server side? Is the content of the UI dynamically generated in the backend and serve as a static page to users?
[+] akhilcacharya|6 years ago|reply
The UI library is also GTK, or at least GTK of a bygone era.
[+] dkersten|6 years ago|reply
> designed heavily with latency in mind

> The front-end is fully rendered server side (meaning every click requires a full round trip to Bloombergs servers)

O_o

Ok ok I guess that’s not the area where they care about low latency?

[+] xerox13ster|6 years ago|reply
I had to reinstall one of these after one of the top trading brass in oil futures at Wal-mart got affected by those fake Microsoft Support scammers and they put the boot lock on his computer.

It's a pain to set up, but it's authentication is unbelievable. It has something like triple factor authentication plus biometrics.

To get him logged in to test it so I could make sure it spread across his 5 monitors correctly, I had to use his RSA key + password to log in to the website, then use a physical device that reads flashes on the screen to generate another code with another password, before he finally put in another password and scanned his fingerprint on the keyboard.

It was mind-boggling, but not unexpected given this dude was moving millions every day.

[+] dzdt|6 years ago|reply
The primary purpose of the fingerprint scanner is to prevent password sharing. Bloomberg terminal access costs about 20,000 per seat per year. Bloomberg cares deeply that every individual who uses the system is paying for an account; shops that use Bloomberg would obviously rather share an account if they can get away with it. The fingerprint scanner makes it really hard to share an account.
[+] whatok|6 years ago|reply
The physical device (B-Unit) is typically used for remote access without the keyboard. Subsequent logins post initial setup are either through the keyboard biometrics or the B-Unit and most are using the keyboard. Normal login process is username/password + keyboard or B-Unit. They also have a standalone USB fingerprint scanner.
[+] sbolt|6 years ago|reply
Off topic but I'm curious why Walmart employs futures traders?
[+] danielmg|6 years ago|reply
The bootlock thing is easy to overcome. I had to fix a neighbour who got scammed. It is a password on the Windows registry not actually the boot but it needs to open the registry to boot.

Windows backs up the registry. Just boot from a WindowsPE or live Linux USB and delete the live versions and replace with the backups. Reboot and lock is gone.

[+] rbinv|6 years ago|reply
The actual title is "How Mike Bloomberg made his billions: a computer system you’ve probably never seen", which much more closely describes the actual article (as there's not that much detail about the terminal itself).
[+] vxNsr|6 years ago|reply
Wait is the point of this article to give Bloomberg some positive press and make him seem technical?
[+] w23j|6 years ago|reply
Exactly. That's why I was reading the article. But it is only about the business model.
[+] sparsely|6 years ago|reply
The terminal, and particularly the business model around it, is widely disliked in some parts of the industry. Bloomberg has an incredible amount of power as the only high quality source for certain types of data, and they tie it to the terminal. There are all sorts of contractual requirements around data not leaving the machine the terminal.

It's not uncommon to hear stories about small trading shops or asset managers having a shared terminals which they run over to do specific actions, or a substantial amount of effort being put into automated data extraction which avoids Bloomberg's controls.

[+] TuringNYC|6 years ago|reply
>> widely disliked in some parts of the industry. Bloomberg has an incredible amount of power as the only high quality source for certain types of data

I agree the terminals are disdained, but I never understood this. The rest of your comment justifies the value. They provide great data (which they spend a boatload of money to get/clean) and they sell it. Customers don't have to buy it, they can try to get the data themselves.

I used a BB terminal extensively for over a decade. It saved me orders of magnitude in work, there is no way I could have obtained all this data myself on an ongoing basis and had it available easily via API. They make a lot of money, and they deserve it.

I had colleagues try to switch to Reuters terminals and they came ashamedly back to Bloomberg, hat in hand.

[+] Tenoke|6 years ago|reply
After reading threads like these[1]. I can't help but feel that MOST interfaces should indeed be like the bloomberg terminal - great example of security-focused, minimal latency and maximum functionality product.

1. https://news.ycombinator.com/item?id=21835417

[+] bob1029|6 years ago|reply
I strongly feel as if the developer community at large need to take another hard look at server-side rendering of business UIs and the benefits this approach can bring.

Consider what you could do if you had a cloud-only multiplayer game engine with all players just receiving a low-latency video stream of their interface and local events being piped back up the same connection, but with some business application built on top. The ability to say that you no longer have a client-server contract and it's all just one big server implementation drops a massive number of design constraints and immediately makes the security and client interface to the system a trivial affair.

Obviously, the downsides with the above are the latency, bandwidth, and additional load seen at the server in order to render client views. But, these are really the only downsides, and none of them are extraordinarily complex in terms of technical resolution. Latency is probably the only hard constraint that cannot be resolved by simply increasing an existing resource. The other 2 can be resolved with More Money™. Everything else is upside from here.

[+] CuriousReader13|6 years ago|reply
In reality, however, some Bloomberg users struggle daily with inaccurate data, lack of documentation, manual (slow) help on trivial issues, and poor performance when running analytics. It is more like a bloated GUI app pretending to be a terminal, worst of both worlds.
[+] skizm|6 years ago|reply
The terminal is extremely slow most of the time and constantly crashes. I agree it is very secure and the software is designed for power users (mouse almost never needed), but it isn’t exactly a marvel of engineering. It’s basically a giant piece of legacy code.
[+] gallerdude|6 years ago|reply
Disagree. For power-users, maybe, but the average person cares about simplicity and accessibility. The mean Facebook user doesn't care about latency.
[+] _bndx|6 years ago|reply
And not a mention of the Bloomberg Terminal spying scandal using privileged information. NY Post broke the story in 2013: https://nypost.com/2013/05/10/goldman-outs-bloomberg-snoops/

"a Bloomberg reporter asked a Goldman executive if a partner at the bank had recently left the firm — noting casually that he hadn’t logged into his Bloomberg terminal in some time"

This is basically access to analytics. From a now-missing huffpo piece: "reporters were able to access a few different kinds of data that are not available to other terminal users. These included the ability to see how often customers had logged onto terminals and the ability to track some of their activities. They could see how many times in a month a client had entered specific commands on a terminal to, for example, look at information about foreign currencies or pull up economic indicators."

And why: "With these tools, Bloomberg reporters could keep loose tabs on terminal users, which include government officials and high-profile investors and traders. Though the tools were limited, they were potentially useful enough to give reporters leads to news scoops — the ultimate goal at an organization that prides itself on its news-breaking abilities."

[+] H8crilA|6 years ago|reply
It is mentioned in the article.

> There’s also a discomfort about just how much information and data Bloomberg has through the terminals. In 2013, Bloomberg News reporters were caught using the terminal to get subscribers’ information and monitor when they logged in and what they were using it for. Bloomberg admitted that it was commonplace for reporters to have access to “limited client information,” apologized, and said it had changed its system.

[+] bitwize|6 years ago|reply
Impeachment probably won't sink Trump, but Bloomberg just might. He's already instructed his reporters not to investigate Democrats. With the data available from rich Trump supporters' Bloomberg terminals and possibly those of Trump administration officials, Mike is in a better position than most to find something to ruin Trump's reputation.
[+] tptacek|6 years ago|reply
Everything I've ever read about BB terminals make them sound like Dwarf Fortress for Finance.
[+] jessriedel|6 years ago|reply
Pretty light on actual details about the terminal. Anyone recommend something more in depth?
[+] fn42|6 years ago|reply
I was at a financial startup ~ 2012 and remember getting a couple of these to play with. They came in the form of 1U servers (HP I think) running RHEL5 that each needed a public IP that was open to bloomberg. I think the client app was windows only at that time, I wonder how much has changed
[+] rootbear|6 years ago|reply
I am increasingly seeing "software" used as a discrete noun, rather than as a continuous noun or an adjective, as in this line from the article:

"The terminal — a software officially named Bloomberg Professional — is still a major part of Bloomberg’s overall business [...]"

I know languages grow and change, but this really grinds on my ears. Not so long ago, the author would have written "a program", or "a software program", or "an application". I see no value in the change.

[+] aetimmes|6 years ago|reply
In the HPC world, programs are sometimes referred to as 'codes'. Everyone's nomenclature is a little different.
[+] CodeSheikh|6 years ago|reply
"You’re not going to win the Super Bowl if you aren’t even playing in the right stadium." Terrible analogy.
[+] moomin|6 years ago|reply
I’d really quite like to read an article about the actual architecture of the terminal software. It’s a phenomenal piece of work that operates under some absolutely brain-bending constraints.
[+] monkeydust|6 years ago|reply
The terminal has been so successful largely because of timing and damn good execution. Mike was at the right place at the right time with changes around the financial industry and move to digitization to capture the uplift these brought to the product it has become. It created cloud computing and social network before those terms were officially defined.

Its distribution is such that any new startup hedge fund for example has to have one to be taken seriously by its investors and to deal effectively with brokers.

Other firms continue to try to beat it and in some sectors for certain functions they have but no one really has hurt it in its entirety... Thompson Reuters now Refinitiv has had best shot but honestly it's barley left a dent.

[+] everling|6 years ago|reply
I use the terminal in my work. I’ve come to loathe the obtuse UX - every function like PORT or EMSX has its own peculiar design that has to be learned by trial and error. A button named ”cancel” might be placed in a way that would imply closing a window but in reality cancels a trade. The archaic design is a trademark in its own right, so it’ll be around forever it seems.
[+] haileris|6 years ago|reply
I've been obsessed with the Bloomberg terminal ever since I discovered my latent love for finance a few years back. I actually got to check one out, but didn't really get to play with it as much as I liked. One day I'll be able to afford the $14k/yr.
[+] lordnacho|6 years ago|reply
I used a Bloomberg terminal for years and years, both as a user and as a coder.

- It's quite convenient for business side people. I used it to trade all sorts of things (FI, credit, equities, fx, derivs on all those) and there was always some convenient function you could type in to give you a calculator for whatever it was. Whatever derivatives model you found in a textbook, you could find it in the terminal. With relevant data loaded in.

- Data is convenient too. Once you know how to work the API, you can pull a huge amount of data. A lot of it is available elsewhere, but nowhere has so much in one place, in one API.

- They are very serious about you not sharing the terminal or the data. Obviously once you have the data in a text file, they can't do much about that, but they do limit the amount you can download, and then they phone you once you trigger something. Sounds like a warning, but also a sales call at the same time.

- It's not so easy to share the terminal itself. The standard tricks like installing it on a VM, or installing remote desktop / VNC won't work. I'm sure someone has figured it out, but it's not as easy as sharing most other software services. They'd be fine with a small business sharing a terminal though, as long as it stayed on one machine that different staff would take turns on. And in case you thought a Bloomberg Anywhere would solve it for your distributed team, that used to use a special biometric device. Not sure if it's still there.

- Chats I'm guessing are not nearly as interesting as a few years ago, before the revelations about what was being said. I never got much gossip, but it really depends on where you're sitting in the market. You can use them as a replacement for voice trading, and everything is recorded. And it warns you if you're about to send a swear word, heh.

- A lot of small firms use the terminal to trade directly with counterparties, there's a whole OTC infrastructure in there. I never used it much but all the banks had their own Bloomberg pages for doing trades in all sorts of things with them.

- In terms of infrastructure, you can get a dedicated line for your bbg, they come and stick some stuff into your rack. This can fail over to internet if you want, simply a matter of changing the config on the app and phoning them. Also IIRC you can get a special data server, depending on whether the guy above scared you into buying one.

- The help function is for users, not coders. You'll wait for ages while the agent on the helpdesk figures out that he doesn't understand your problem if you're a coder. If not he'll find the business function you're after quite fast. Every time I got through to a dev about something that needed to be changed, it went into a suggestions queue and stayed there.

[+] dgudkov|6 years ago|reply
Fun fact: Information from the Bloomberg terminal can also be received right into Excel using special VBA functions. Although, there are licensing restrictions on sharing such information.
[+] gadders|6 years ago|reply
The terminals are popular, but having worked with some of the staff at Bloomberg to get MIFID related changes implemented, they didn't impress me at all.
[+] bilekas|6 years ago|reply
I would love to be a fly on the wall in those chat rooms it facilitates..
[+] twic|6 years ago|reply
99% of it is:

  where do u see 5y5y
  size?
  20k
  2.4456/2.4511
  tx
[+] akhilcacharya|6 years ago|reply
The chat rooms have really interesting features, like pinning and rich-embedding equity information that updates in real time. Also, you can "ring" the room with a bell, which was immensely entertaining as an intern.
[+] pjc50|6 years ago|reply
Remember not to commit securities fraud in writing. A lot of people make that mistake.
[+] bluejay2|6 years ago|reply
Echoing another commenter, level of discourse is generally pretty low. In public chat rooms you’re more likely to get a wise crack rather than an actual response to any question. That said, you can still find some nuggets of wisdom.
[+] droitbutch|6 years ago|reply
> "And while the terminal can be hard to learn — it’s not very intuitive — once they pick it up, a lot of people don’t want to learn a new tool and run the risk of making a mistake. ... The terminal is sticky."

So TLDR: it's vi for traders!