Speakers: Jim Beyers, Director Engineering, Aaron Riekenberg, Lead Engineer and Hitendra Pratap Singh, Lead Engineer

2015 saw the birth of a new product team at Target, Available to Promise (ATP) ATP is a new way to talk to guests about product availability and delivery times on target.com and is used as the the reservation engine for orders. In order to provide the guest experience that we are seeking to deliver on Target.com – the team chose to make use of an in memory data grid to serve up these features. This talk will cover what the team did right, what they did wrong, and what they were able to achieve (metrics).

 

Did:

  • Implemented OSS hazelcast
  • Needed consistency and transactions (while using a NOSQL, non-transactional datastore)
  • Used transactions backed by RESTFul APIs (using MapStore with write behind)
  • Needed to consolidate distributed systems into a unified response (with transactions)
  • Used Microservices to facilitate the domains
  • Went through many serialization iterations
  • Iterated to the right balance of local caches and memory-grid (used topics for transport and making use of the camel hazelcast component)
  • Made use of executor service as well ( so had mix of EP and Executor)

Learned:

  • How to support transactions fast! (EP)
  • How we bundled Hz (client server)
  • Serialization is important!
  • Gotchas – refreshing cache time, EP is bundled in the server