We chose a queue over direct calls to decouple the two services. We prefer a stateless design because it simplifies horizontal scaling. The leak was caused by a listener that was never removed. The main trade-off is higher memory usage in exchange for faster lookups. So far this sprint, I have closed five bugs and reviewed three requests. The race condition disappeared once we added a lock around the update.
Click to start typing