Inspiration

We took much inspiration from the opening ceremony. As the speakers said, we are the next generation of revolutionary, forward thinking innovators. Our goal with this exchange is nothing less than taking over the market share of all other exchanges in the world.

What it does

It offers the most efficient exchange in the world - not even Bloomberg can handle this much data. Bloomberg, count your days, we are coming for you. With us it is not only possible to trade securities but even your cutest moments with your Bloomberg terminal.

How we built it

Server

  • Rust, Axum for WebSocket handling
  • PostgreSQL with Timescale extension (for continuous aggregates)
  • Redis as our Pub/Sub broker

Client

  • Svelte web app with WebSockets

Also, have a look at the architecture design diagram.

Challenges we ran into

Half of our team DnF'ed due to being sick.

Accomplishments that we're proud of

Our by far biggest and most important accomplishment is that we had loads of fun during this Hackathon. We are proud of everything we have worked off so far and the team grew together.

What we learned

Probably some things but it's late and we are sleep deprived.

It's the next day, we got some sleep;

Backend

Regrets

  • Maybe we should've tried an ECS instead of an external database Although it is not as scalable it can be built directly into the server and use Rust native types making it much more simple to interface. Libraries like sqlx can help by checking types at compiletime, but being used to Rust's excellent type inference we were more than once bit by literal numbers not being implicitly converted to the correct PostgrSQL type.
  • Using different languages for the frontend and backend (and having a database) caused a bunch of API conflicts (some code used "stock" other used "symbol"), creating a specification or tighter communication helped.
  • Not picking a familiar programming language.

Things we did well

  • Language choice, altough maybe Go would've worked better in a Hackathon context (for easier development). Picking a language with a good package manager was crucial as it allowed us to use off the shelf libraries. And Rust being a Systems Programming Language means that no performance was left on the table.

What's next for Bloomberg Exchange

Secure a pre-seed funding. Just kidding, don't take our words too serious XD.

Improvements

  • Flesh out the API
  • Separate the Matching System from the API
  • Change the Database Schema so that the trading history is better tracked.

Built With

Share this project:

Updates