We were inspired by the bet365 challenge at GreatUniHack.
What it does
We basically built a middleware layer that pushes information to subscribers based on their categories. It is also adaptable to high demand periods as it can redistribute load to multiple instances of the same service. Services can also publish 'jobs' that will later be distributed to the correct subscribers. The core of our system allows for easy horizontal scaling. There is also a log of all the events that passed through the message queue.
How we built it
We used python with the sockets library.
Challenges we ran into
We ran into issues pertaining to blocking of processes while waiting for input. We had to find data structures that allowed for async access to information. finally, we also had to find a way to accommodate horizontal scaling under a heavy load of the system.
Accomplishments that we're proud of
We managed to implement a functional python cloud interpreter using our system. Additionally, our architecture allows for diverse categories of messages to be distributed and is flexible to horizontal scaling.
What we learned
The greatest challenge we faced was not knowing anything about server architecture, TCP or python networking in general. We had to also understand how to use threads to create parallel workloads. Thus we learned a lot while using these concepts and tools. We now know a lot more about the publisher/subscriber architecture, its strengths and weaknesses.
What's next for Python Cloud Interpreter
Creating a more intricate user interface and ironing out small issues in the code are the first things to consider.