Register
Submit a solution
The challenge is finished.

Challenge Overview

Challenge Objectives

  • Replace calls to the mock API with inserting data directly into DynamoDB.

Project Background

We’re in the process of revamping our platform and adding support to store more information about our users as traits in order to improve the overall user experience in our platform.

Technology Stack

  • Node.js

  • Kafka

  • Docker and Docker Compose

  • AWS

Code Access

Existing code:

Branch: dev

Detailed requirement

1. Replace mock API with data insertion into DynamoDB

In the previous challenge, we wanted to make the processor call the member API when it received an event about user registration/updates so the member API would handle the data insertion into DynamoDB.

Due to lack of support for M2M tokens on the member API, we need to change the implementation of our processor to:

  • Directly insert/update data into DynamoDB

  • Publish an event with the inserted/updated data to another topic so our ES processor will pick that and handle the data insertion/update into ES.

 

We will provide you the code of the member API (which is written in Java) so you can see the table structure and mimic the logic behind inserting data into DynamoDB.

 

The topics you need to publish the new events are:

  • member.action.profile.update

  • member.action.profile.create

You will find example payloads on the challenge forum.

 

You can use the following library to post the events: https://github.com/topcoder-platform/tc-bus-api-wrapper

2. Bug fix (Major)

The current implementation suffers from a bug that when the processor is brought down for some time, messages received during that time won’t be processed when the processor is restarted.

The consumer commits the offset to zookeeper but when the processor starts it picks the latest offset instead of the committed offset.

This needs to be fixed.

 

Feel free to ask on the challenge forum!

What to Submit

Submit:

  • Git patch for the latest commit in the dev branch. Make sure to note the exact commit you used so the reviewers can apply your patch file.

  • Instructions on how to apply your patch and test your submission.

The winner must create a pull request to our repo.



Final Submission Guidelines

Please see above.

ELIGIBLE EVENTS:

Topcoder Open 2019

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30079615