Challenge Overview
Project Background
Topcoder Member Service is the crux of member management, which provides microservices for member profile, profile traits, stats, financial, skills and external accounts.
Technology Stack
- AWS
- DynamoDB
- ElasticSearch
- Docker
- NodeJS
Code Access
We will be creating a new repo for this challenge. For testing use Topcoder - Member Service repo (use feature-member-skills-sync branch).
Individual requirements
- In this challenge we are creating a serverless AWS repo using Lambda which will sync DynamoDB to Elastic Search. For schema references of the tables, you will need to setup and refer to Topcoder-Member Profile (use feature-member-skills-sync branch).
- Background: We have 2 tables in the DynamoDB - `MemberEnteredSkills` and `MemberAggregatedSkills` - both of these tables hold Skills for members of topcoder.
- We want to deploy a LAMBDA function (serverless) to sync the above tables to ES - this function will watch for any changes being made in the 2 tables in DynamoDB and sync the changes to ES at real time. Make sure your code handles all conditions - Add / Edit / Delete.
- Since we are building fresh code base, make sure the best coding practices are followed. The shared repo is for reference, which may or may not be following best practices.
- Tests and Test Data are in Scope.
- We will stick to Serverless implementation in NodeJS only.
- Logging support is required.
- Make sure we keep the params configurable so it is easy for deployment team to push to DEV / TEST / PROD.
- For reference, refer https://github.com/topcoder-platform/member-stats-sync-lambda: This repo already does similar work for Member Stats.
Important Notes
- You should follow the best practices.
- Reviewers will need to use their AWS env to test the submissions, Topcoder will not provide any.
Should you have any doubts, do not hesitate to ask for clarifications in the challenge forum!
Final Submission Guidelines
- Submit your codebase as zip file.
- Make sure README.md follow Topcoder standards - make sure you add steps to deploy the codebase to AWS using AWS commands from local machine.
- Submit Verification and setup guide to help reviewers setup and verify your submissions in their AWS env.
- Verification Video is optional but you are welcome to share one to show your code in Action.