By Chris Murphy
Trunk Club, an online, personalized shopping service that delivers hand-picked clothes to shoppers’ homes, prides itself on helping its customers “build their best wardrobe” with top-quality apparel. Its success at providing that kind of service depends on giving customers an equally elegant connection between digital and physical experiences.
Trunk Club customers share their style preferences with the company online, talk with a stylist by phone or online who then builds a selection of clothes, and view and approve that selection via TrunkClub.com or a mobile application before the trunk is shipped to their home. Customers pay only for the items they keep, along with a US$25 stylist fee (which counts toward any clothes purchased and is waived for Nordstrom cardholders, because Trunk Club is owned by the retailer).
That vital connection between digital and physical experiences makes back-office technology choices critical, because they allow Trunk Club to continually tailor what customers can do online and then bring the experience to life in trunks filled with curated outfits.
“We’re always iterating on what we can do better, making small changes and learning from the experience to make it better for the customer,” says Brian Lee, engineering manager at Trunk Club.
No surprise, then, that behind its business model, Trunk Club is a technology company at its roots. The company’s tech strategy revolves around an API-centric microservices architecture for its front-end web and mobile applications and its back-end systems for customer, product, billing, and other data. A critical platform Trunk Club uses to execute that API strategy is Oracle Apiary Cloud Service, part of Oracle API Platform Cloud Service, which Trunk Club uses to design, document, and manage its APIs. (See the sidebar, “Apiary Extends Oracle API Platform Cloud Service.”)
Collaboration Is Key
Trunk Club’s technology strategy is built around a design-first approach—where front-end developers and back-end systems developers discuss the type of experience they want a Trunk Club customer to have for a given transaction before they ever write a line of code.
Collaboration at the earliest stage of design is vital. Because Oracle Apiary Cloud Service lets you build and share an API model without coding, says Lee, it is easier to get feedback from the people who will use the API. The team uses the cloud service’s mock server feature to model how those APIs will work.
“We can use the mock server as if it were a production service, which accelerates development,” says Lee. “And because Apiary generates great API formatting and great documentation, it becomes a lot easier for someone else inside our tech team to look at our documentation and start using it or give feedback on it.”
Microservices at the Core
Because Trunk Club is built on a microservices architecture, each element that’s needed to put together a customer’s trunk of clothes—data about customers, products, price, and so on—comes from its own service.
“Each service has information that it knows about, and the API pulls it together and puts it into a format that the front end can consume,” Lee explains. “That’s why Apiary and API design are important, because we’re specifying that ‘we need x, y, and z to show trunk previews to the customer.’”
That’s where collaboration and learning happen, too, says Lee, “because the back-end engineer will describe how ‘in order to create this trunk object, I need to talk to the order service, the customer service, and whatnot.’”
Having a microservices architecture helps Trunk Club developers quickly add new features, without fear of breaking the entire application if there’s a glitch.
“The microservices and the Apiary architecture create a separation of responsibility where each small service has its own small responsibility,” says Lee. “So you’re able to break up the work so that you can either do it in parallel or do it in manageable pieces.”
Headquarters: Chicago, Illinois
Once developers write the code, Trunk Club does a code review. “Because we’re able to break things up, you don’t have to have this gigantic, 10,000 lines of code to review,” he adds. “But also when we’re shipping it and making it live, we’re confident that it’s not going to break any other things, because the components are separated and contained within their own services.”
Talk to the API
Trunk Club has created a few rules to govern the communication among its front-end and back-end systems, its APIs, and its services.
We’re always iterating on what we can do better, making small changes and learning from the experience to make it better for the customer.” –Brian Lee, Engineering Manager, Trunk Club
“We have microservices in the sense that different services talk to each other,” says Lee. “So one of the rules we have is that the front-end app should not talk to the service directly. It should always talk to the API. And different services can talk to each other—that’s another rule—and the API can talk to the service.” But the service should not talk back to the API, Lee adds.
Setting these guidelines for the information flow makes it easier to visualize how the system works, says Lee. “The API gathers the information and massages it together and gives it to the front end, where it can talk to different services,” he says. “But if a service needs something, the services just talk to each other without having to worry about the API.”
Oracle API Platform Cloud Service enables companies to comprehensively manage the full API lifecycle from design and standardization to documenting, publishing, testing, and managing APIs. Oracle Apiary Cloud Service helps companies accelerate and control the design, development, and documentation of their APIs and microservices. For more information, visit cloud.oracle.com.
Next Up: Data Science APIs
True innovation, however, can’t happen inside the engineering team alone. To that end, Lee is eager to use Oracle Apiary Cloud Service as the home base for collaboration with teams outside engineering, starting with the data science team. That team builds its own applications to do research, and those applications pull data from some of the same back-end systems—such as product and customer data—that customer-facing applications use. So Lee is working with the data science team to get them started using the API design and prototype tools.
Because Oracle Apiary Cloud Service creates such clear API formatting and documentation, Lee sees an opportunity for the data science and back-end teams to work in parallel on their projects, letting them do more-creative work, faster, with the confidence that the APIs will bring the disparate elements together. “We trust that this is exactly how the communication is going to work,” Lee says. “The back-end engineers and the data science team can work in parallel without blocking each other.”
Photography by Paul S. Howell