Challenge Overview
Challenge Objectives
-
Create a Node.js processor that will listen to kafka topics and will make the appropriate API calls to our Member API.
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 (for reference)
Example processors:
Member API code:
-
https://github.com/appirio-tech/ap-member-microservice (the code is also provided as a zip file in the forum in case you don’t have access to the repo)
Identity service code:
Detailed requirement
The topics the processor should listen to are:
-
event.user.created
-
event.user.updated
Note that those topics should be configurable and the processor should be able to read them from env variables.
We don’t have any sample payloads but see if you can pull the structure from “com.appirio.tech.core.service.identity.representation.User”
The processor should listen to those topics, receive the payload and make the appropriate API calls to our Member API. You will have to explore the ap-member-microservice code to figure out the correct endpoints to use in each case.
Use case:
When a user registers, the identity service will do all its work and invoke the kafka event "event.user.created". Then our processor will be listening to "event.user.created" and based on that will invoke our ap-member-microservice to create a user in dynamodb and ElasticSearch.
The name of this new processor should be: member-account-processor
Feel free to ask on the challenge forum!
What to Submit
Submit:
-
The processor source code
-
Detailed configuration and deployment instructions (README.md)
-
A verification document