This application is solely composed of microservices: a kafka service, a streaming service, a web service and a client service. I really wanted to try the following ideas:
- WebSockets
- Apache Kafka - a distributed streaming platform (https://kafka.apache.org/)
- Apache Avro - a data serializer (http://avro.apache.org/)
- deck.gl - large-scale WebGL-powered (GPU powered) data visualization (http://deck.gl/)
- React.js
I needed practice with some others:
- Building microservices
- Using Docker
- Programming in python/javascript
The application streams data from https://public-api.adsbexchange.com/ . (Thank you ADS-B Exchange) The data gives a stream of aircraft positions updated every 5s. The application was able to handle the throughput of data.
Picture: Visualization after about 30s of aircraft plotting