Code repository

Engagement (aka Challenges) is composed of below code repos

  1. engagement-manager

Accept a Challenge and win a Reward

A challenge is composed of a couple of missions. If a customer decides to accept a challenge, and s/he completes those missions, then s/he will win a reward.

Challenge

There are pre-defined challenge templates in engagement-manager. Once a customer chooses and starts a challenge, a challenge entity for that customer is created. The customer must complete this challenge in a given period.

Mission

There are Kafka message consumers to receive the interested events. If an event is received and it’s one of operations defined by mission, then a mission entity will be created based on the mission template.

If that mission’s requirements are met, it’s marked as finished.

If that mission is the last one in the challenge and it is before deadline, then the whole challenge is marked as finished and a reward is created for that customer.

Reward

A customer will get a reward if s/he completes a challenge. But the customer must claim the reward in a given time period, otherwise the reward will be revoked.

The rewards including:

  1. bonus interest

  2. bonus transaction (reward some transaction operations in customer’s subscription ?)

  3. reward free subscription