Wayfair
Wayfair Financial Invoicing API
Background
As Wayfair grew in scale, onboarding hundreds of suppliers and generating thousands more invoices a day, their processing pipeline started to show its limits. The previous cron-based system of transaction processing led to lags in data, sources of truth for certain data had become forgotten, and other certain deeply-rooted issues just made maintenance a hassle for everyday engineers. It represented some burning technical debt, and there was an estimated $10 million in potential revenue and unlocked business opportunities if we could deliver a much better API.


Solution
Our team wrote a new financial invoicing API that relied on distributed messaging using Kafka as well as API endpoints written using PHP and GraphQL, redesigning how the data was represented and making the pipeline work asynchronously. I was able to write some GraphQL resolvers to query and integrate a lot of disparate data sources, so we could present one flexible, version-independent endpoint to clients. This was a pretty formative project, I'd never worked with a framework like GraphQL before, and it was a really fulfilling experience migrating a legacy system over to something so elegant and modern.