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
- axum
- hyper
- postgresql
- rust
- svelte
- tokio
Log in or sign up for Devpost to join the conversation.