In few years,
also with the implementation of new features and services that have transformed
and complicated the operations.
In order to provide support to the fast
grow, engineers needed to be able to manage a huge amount of data continuing to
provide an excellent service without interruptions.
Airbnb has decided to invest in a new
infrastructure to handle different payment transaction patterns in order to
maintain and improve their payment operations and enable both guests and hosts
to exchange money with ease.
The need to
invest in infrastructure in order to become more independent of standardized
billing product is represented by the fact that existing billing software are
more complicated to administer. In fact, Airbnb needs a platform that allows
the implementation of new features, to constantly create or edit products on
the platform and to maintain high degree of transparency with each component of
complex challenge they have had to face has been represented by managing all
current and future product types with a financial impact on the platform. The
representation of those products can be divided in non-financial aspects such
as reservations or reimbursements and financial aspects such as account
receivable and payable, revenues, tax etc.
Each product has its own set of platform and
payment events and a corresponding set of financial events. It is possible to
describe the system as a series of events that have an accounting impact of
different products at different points in their life cycle. This graph briefly
shows how the system works: Platform events can be defined as events with or without a
financial impact such as reservations, cancellations or reservation
alterations. These events or activities are related to a product category. For
example, when a client makes a reservation on the platform, the system creates
an event related to the product type “reservation”.
events describe money movement in or out Airbnb’s bank accounts.
events: these events basically keep track of what happened by assigning a unique
identifier, the product type and the product id, to a set of activity. For
every accounting event, the system creates a sub ledger which is the basis for all the financial accounting.
They provide a detailed accounting record with information about the time a
transaction occurred, currency, direction of the monetary impact (in or out)
and the account that it impacts.
This graph is useful to understand the logic
behind the system and it describes the complete process using a concrete
simulation. The platform event indicates that a client has confirmed a
reservation for 100$. Of these 100$, 90$ is the price of the stay and 10$ are
fees. Payment events show that Airbnb has a guest receivable of 100$ and host
payable of 90$. These become accounting events when the client confirms the
reservation and the money flow occurs. Then the sub ledger provides summary
information of all the reservation details.
Overall the system
is very useful because it can manage many complications such as an alteration
of the reservation. In fact, the system can recalculate the price, fees and taxes very quickly. The most
frequent challenges that the system has to deal with are: security deposits,
resolution payments, professional photography costs and coupons, taxes with
different VAT rates. All of these are additional financial actions that Airbnb
has implemented during the growth of the business. Moreover, new system has
proven to be easier to debug, maintain, and it is designed to scale