Photo credits: John Schnobrich on Unsplash
E-commerce platforms in the luxury fashion industry occupy a small portion in the wider online fashion e-commerce industry. Established in 2007, Farfetch offers a leading online platform in the luxury retail industry, connecting brands, boutiques, partners, and the end customer. When looking at the numbers, currently over 1,000 boutiques and brands sell products using the Farfetch platform. Farfetch serves over 2 million users in 190 countries (plus, the Spring/Summer 2018 season alone had 5.7 million units of items stocked in the platform). Their online business operations are driven by an integration platform, built by using WSO2 Enterprise Integrator.
A scalable integration platform for a growing business
On a day to day basis, Farfetch communicates stock information between their partners and customers, manages orders and returns, and handles the logistics on behalf of their partners. Several years ago, Farfetch requested their partners to integrate with their architecture and built a SOAP API to facilitate this integration. However, with time, the partner network grew and integration became even more important, and Farfetch realized the solution at the time was not scalable in the long term due to the lack of a relevant platform.
Therefore, in 2016, Farfetch built their own integration platform named FFLink using WSO2 Enterprise Integrator, an agile integration platform that helps enterprises to build and scale integration solutions. FFLink is based on 2 components. The first component is a universal plug-in, where Farfetch built a plug-in for a system that is used by multiple partners whilst ensuring the scalability of the system. The second component targets their top partners, with whom Farfetch embarks on custom projects depending on the business case. In this instance too, scalability is important. In theory, Farfetch prefers to provide out-of-the-box integration options for their partners although, in practice, this is not always possible as some of the bigger brands have custom API layers on top of their system, rendering it difficult to use with other partners. With FFLink, partners now integrate using the same API as Farfetch and the plug-ins.
Building the architecture to overcome challenges
In recent years, Farfetch has been nearly doubling their growth rate every year (sometimes more). One of the challenges now is no longer the integration platform - but managing and scaling this platform, along with the partners. Furthermore, Farfetch is also looking at discontinuing the use of their API which they introduced at the start but some partners continue to use it. This discontinuation process cannot be abrupt and they’ve introduced a process by which these partners will graduate start using FFLink. To do this, Farfetch has exposed one API to their partners, which they will then connect to their new and modern REST API internally. This ensures that Farfetch continues to support all their partners (including the ones using the original API) and simultaneously ensure their internal architecture continues to evolve and deploy new APIs.
The challenges don’t end there. Although Farfetch is satisfied with the way in which they were able to create FFLink and deliver value to their partners, they experienced some difficulty in supporting and maintaining all their partners. As such, they began to look at ways in which they can modify FFLink further, taking into account issues of scale, business growth, partner management, and support. They then introduced the second version of FFLink - which is an event driven architecture. Every transaction received by FFLink is transformed into an event. All orders that are synchronized between Farfetch and partners are transmitted through a central event service, regardless of the source system or the target system. This has eased the monitoring and scaling functions for the team at Farfetch. The main role of this architecture is to discover events. For example, when the system receives a new order, APIs are pooled by Farfetch and their partners to find this new order after which an event is created. However, not all partners use APIs and some of them still use files - leading to problems. In order to deal with this, Farfetch has built storage services in the system whose function is to discover and manage events that are triggered using files. Partners who use APIs are able to create events via the API gateway in the integration platform, through the exposed APIs.
Once an event is created, synchronous ones are published on the messaging, overseen by the orchestration layer. Asynchronous events trigger the orchestration layer, which turns it into a message and transforms it as needed. This is where WSO2 Enterprise Integrator plays a key role, helping Farfetch to scale this platform and build the orchestration layer. WSO2 Enterprise Integrator has integration runtimes, message brokering, business process modeling, analytics, and visual tooling capabilities.
The new architecture has allowed Farfetch to set up a central back office, helping them to configure, manage, and monitor the system. This has helped them to anticipate and communicate any problem that they encounter to their partners, thereby ensuring the smooth day-to-day management of their functions - something which the team at Farfetch values greatly, given the continued growth of their business.
To learn more about FFLink, watch this presentation by Vasco Rocha, head of engineering, platform services at Farfetch.
Find out more about WSO2 Enterprise Integrator here.