...
- Create an empty JSON Array, to store the result
- The JSON array will contain the following: action, xpath, payload as individual JSON objects each object representing a singular operation.
- Fetch the data from two anchors and store in two separate Maps
- Iterate over the entries of first map
- For each entry of first map, check if the key is present in second map.
- If the key is not found in second map, it means that the key-value pair has been removed from the second map. Create a JSON Object with DELETE action, the xpath to deleted node and payload. Add the Object to the JSON Array.
- If the key is present in the second map, compare the values associated with the keys in both maps.
- If the values are instance of Map, recursively call the comparision algorithm to compare all nested maps. Add all the necessary fields into a JSON object and put the object into the JSON Array
- If the values are not equal, it means the key-value pair was updated. Create a JSON Object with UPDATE action, the xpath to updated nodes and payload. Add the Object to the JSON Array.
- Iterate over the keys of second map and find the keys not present in first map. These keys were added as new entries. Create a JSON Object with ADD action, the xpath to added node and payload. Add the Object to the JSON Array.
- Return the JSON Array and the updates to Kafka events