1. Create an avro schema under common/schema/schemas/product/, for example: CustomerSubscriptionOverviewUpdateAvro-v1.avsc. Refer to https://avro.apache.org/docs/1.7.2/spec.html for spec of avro schema.

  2. Modify common/schema/topicSchemasDefinitions.json to register the new schema. For CustomerSubscriptionOverviewUpdateAvro, the topic for Ably is product.subscription.overview.updates.temp

  3. For local development, run scripts to validate and generate local jar file. Refer to https://github.com/SafiBank/SaFiMono/tree/main/common/schema for details.

  4. Commit the changes in step 1 and 2 and make sure new avro schema is deployed before commit the code in Product-manager. Check the status of workflow at https://github.com/SafiBank/SaFiMono/actions/workflows/avro-schema-generator.yml

  5. If the step 4 is successful, build the local project Product-manager and see if new schema is updated.

  6. Commit code changes for Product-manager.

Refer to Kafka Topics to Ably Channel Mapping for details about topic for ably. Additional field ablyChanel is added for ably message.

Pending issues:

  1. When subscription plan changed, sending message to Ably is not implemented at the moment. This is because plan change is not frequent. To implement this, have to get all customers that will be affected and send a message to each customer.