Choco creates tools for restaurants and suppliers that make the ordering process better—saving time, energy, and food. Choco is all about delivering visibility and flow to the food industry; they took an “old-school” industry that works on written notes and faxes and transformed how restaurants order from suppliers into a completely digital, simple and effective transaction. They’ve seen firsthand how powerful visibility and flow can be.


From a Monolithic Java API to Microservices


“We started with a monolithic Java API, but we realized fairly quickly that this was not the way to go.”, says Gabriel Michels, Choco’s Director of Engineering. “Since we already had experience with AWS and microservices, we decided to shift the backend to such an architecture.”


Dealing with Visibility


Choco realized they lacked visibility into how they developed and monitored its microservices application, they understood they needed a solution. “As we grew – both in the number of microservices and the size of our development team – it became difficult to understand how the services connect to each other,” says Michels. “We had the visibility we needed when there were 5-6 people, but as the team grew, individual engineers had less sense of how things connected to each other.”


At first, Choco tried to use AWS CloudWatch to provide the visibility they needed. “CloudWatch was really time-consuming,” says Michels. “It was basically a ‘follow the breadcrumbs’ exercise, which took a huge amount of time. That was painful!”


Gaining Observability with Epsagon


Michels was introduced to Epsagon after hearing from peers. “I would ask peers at industry conferences how they solved these issues, and I kept hearing about Epsagon,” says Michels. “I decided to give it a shot. The instrumentation was super easy, and without any code changes we could trace and understand how the different services were interacting with one another. We saw the value very quickly.”


The first task was to give developers a tool to understand how all the microservices worked together.  But Epsagon provided more value than that. “CloudWatch isn’t a sophisticated monitoring system like Epsagon,” says Michels. “With Epsagon’s powerful monitoring features, it became very easy to figure out when and why things went wrong. Furthermore, Epsagon introduces tracing for AppSync, which was very beneficial.”


Epsagon brought the full visibility that Choco’s development team needed. “Epsagon is the ‘link’ that brings the visibility to the microservices and serverless system,” says Michels. “If you don’t have it, you lose a crucial part of the work with microservices.” And, in the end, that crucial visibility restored the “flow” to Choco’s development team that had been missing.