Background

Recently I worked on a requirement where we needed to audit the change/difference in the entity resource so looked over the internet to get a utility that can return the difference between two java objects (or Map objects) like — updated, added, removed fields. Also, the difference should be serializable so that they can be persisted or transferred over the network.

I found Google’s Guava API which gives Maps.difference() utility function to get the difference between 2 input Map objects, but it has a basic limitation of not being serializable (eg. com.google.common.collect.MapDifferenceImpl, com.google.common.collect.ValueDifferenceImpl) …


Background

The Workspace ONE Intelligence data platform, which is based on a microservices architecture, has various features such as automation, workflow, reporting, dashboard, etc. All the microservices are based on the Java platform and developed using the Spring framework. The deployment is in the AWS cloud and leverages various AWS services like Lambda, Kinesis Stream, RDS, ElastiCache, etc.

Even though our data platform supports multi-tenancy and is configured to scale out dynamically, with the growing number of tenants/customers it is expected that in the future we will be having an increased load on our system/microservices. …

Ankush Sharma

Passionate Software Engineer with 11 years of work experience and knowledge in designing, developing, debugging and testing Java platform-based applications.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store