Submission of 2023 Tiktok Tech Immersion Programme backend assignment.
This assignment challenged me to develop the backend side of on Instant Messaging (IM) system focusing on the core messaging features of delivering messages on top of a HTTP and RPC server.
Golang's RPC and HTTP server frameworks, Kitex and Hertz, were used in the building of the servers found in this project.
To tackle the storage of data, the Redis database was chosen due to the nature of its key-value storage and its speed through the natureof in-memory data storage.
Functions supporting send requests and pull requests were defined, supporting functionality to write and read messages from the Redis server respectively.
API Testing was done via Postman, while load the load test was done using jMeter.
The greatest challenge I faced over the course of this projcet is definitely the large number of systems that have to be put in place for it to work, from the Docker images and containers to the RPC and Redis servers. Especially since this is my first contact with most of these services, the learning curve was particularly steep. However, it was indeed a great chance for me to grow and develop my skills.
Thank you to the TikTok team for providing this incredible learning opportunity, the insightful lessons and guidance! Shoutout to wonderful participants who were so willing to extend help to the rest!