How Macy’s enhances the customer experience with Google Cloud services
Director of Software Engineering at Macy’s
Editor’s note: Learn from Mohamed Nazeemudeen, Director of software engineering at Macy’s, about Macy’s strategy regarding choosing cloud databases and how Macy’s pricing services leverage Cloud Bigtable under the hood. You can also find Mohamed’s Google Cloud Next ‘21 session on this topic on YouTube.
At Macy’s we lead with our aim of fostering memorable shopping experiences for our customers. Our transition from on-premises operations to Google Cloud managed database services is an extension of this dedication. Our mutual commitment to innovation in customer service led to the acceleration of our digital transition at an uncertain time for our industry and our company.
As one of the nation’s premier omnichannel fashion retailers, Macy's has 727 stores and operates in 43 states in the US. By leveraging Google’s databases, we’ve emerged from the COVID-19 pandemic with newfound scalability, flexibility, customer growth, and a vision that consistently challenges and inspires us to enhance the customer experience. Through our Google partnership, we succeeded at bolstering our e-commerce platform, optimizing internal operational efficiency, and enhancing every critical component of our services by choosing the appropriate database tools.
How Macy’s leveraged Google Cloud services to optimize efficiency
Common Services is a strategic initiative at Macy's that leverages Google Cloud managed services. The goal of Common Services is to provide a single source of truth for all internal clients of Macy’s selling channels. This centralization of our operations allows us to provide an integrated customer experience across the various channels of our company (digital, stores, enterprise, call centers, etc.).
Click to enlarge
How Cloud Bigtable and Cloud Spanner support pricing and inventory management
The SLA for Common Services is a 99.99% uptime, with cross-regional availability, supporting more than tens of thousands of queries per second at single digit latency at the 95th percentile. We decided to use Google Cloud’s managed services to lower our operational overhead.
To store data from our catalog and support our inventory management, we leveraged Cloud Spanner. Our catalog service requires low latency and is tolerant to slightly stale data, so we used stale reads from Cloud Spanner with about 10 seconds of exact staleness to keep latency low (single digit).
We utilized Cloud Bigtable on Google Cloud as the backing database for our pricing system as it entails a very intensive workload and is highly sensitive to latency. Bigtable allows us to get the information we need, with latency under 10ms at p99, regardless of the scale and size of the data. Our access pattern entails finding an item’s ticket price based on a given division, location, and the universal price code (UPC) which identifies the item. The system on Bigtable supports a time that spans from multiple days in the past to multiple days in the future.
We have millions of UPCs and more are added every day. With 700+ stores, and potentially multiple price points per item, we create billions of data points. Our calculations, therefore, show that we will require dozens of terabytes of storage. The storage available on GCP supports all our extensive storage needs while optimizing speed, functionality, and efficiency.
Click to enlarge
How we designed our Bigtable schema
We wanted to access the information with one row key lookup to keep the overall latency low. For the row key, we use the location and the UPC. In order to avoid key range scans, and to be mindful of storage requirements, for the timestamp price values, we chose to use a protobuf inside a cell. Our performance testing showed that the cost of deserializing the protobuf was negligible and with Google Cloud, our latency remained in single digit milliseconds.
The Cloud Bigtable schema design for the price common service
Our price systems involve heavy batch writes while processing price adjustment instructions, we have isolated the read and write workloads using Cloud Bigtable app profiles. The app profile is configured with multi-cluster routing so that Cloud Bigtable does the high availability for us.
Our ability to enhance the performance of our operations and deliver a better experience for our customers is a direct reflection of Google Cloud managed services. The success of our partnership with Google reflects a mutual commitment to embracing innovation and imagination. We enjoyed this opportunity to expand Macy’s reach and streamline the shopping experience for our customers. We are excited to bring a new standard of personalization, accessibility, and comfort to today’s retail industry.
Where is your Cloud Bigtable cluster spending its CPU?
Understanding the CPU usage of your Cloud Bigtable instance is paramount to optimizing performance and cost. We now allow you to visualize your Cloud Bigtable cluster’s CPU utilization and break it up by dimensions like app profile, table and method.
By Vikram Khemka • 3-minute read