Airbnb Engineering

medium.com/airbnb-engineering · Company blog · on HN since 2016

Airbnb Engineering is the company's Medium blog on its software systems, covering mobile, GraphQL, metrics, authorization, and workflow tools.

What HN saysHN commenters link its posts on metrics layers, the Himeji authorization system, and its low-code workflow platform, and one shares lessons from its secrets management.
259HN people shared it
73linked it in comments
301stories submitted
3.5Kstory points
3 months agolast shared
2016people per year2026

Most-shared posts

  1. 1
  2. 2
    Scaling Knowledge at Airbnb
    10 people · 13 points · first shared 2016 · 1 comments on HN
  3. 3
    Airbnb’s Server-Driven UI System
    9 people · 116 points · first shared 2021 · 75 comments on HN
  4. 4
    React Native at Airbnb
    8 people · 498 points · first shared 2018 · 248 comments on HN
  5. 5
    Scaling Financial Reporting at Airbnb
    8 people · 183 points · first shared 2017 · 40 comments on HN
  6. 6
    Reconciling GraphQL and Thrift at Airbnb
    7 people · 22 points · first shared 2018 · discussion on HN
  7. 7
    How Airbnb Achieved Metric Consistency at Scale
    7 people · 12 points · first shared 2021 · discussion on HN
  8. 8
  9. 9
  10. 10
    ts-migrate: A Tool for Migrating to TypeScript at Scale
    6 people · 10 points · first shared 2020 · discussion on HN
  11. 11
  12. 12
  13. 13
  14. 14
    Avoiding Double Payments in a Distributed Payments System
    4 people · 29 points · first shared 2019 · 2 comments on HN
  15. 15
    StreamAlert: Real-Time Data Analysis and Alerting
    4 people · 12 points · first shared 2017 · discussion on HN

What HN people wrote when they linked it

btown · 2023-09-21
Ah, this is part of the Turbo project that had the whole controversy earlier this month around DHH unilaterally removing TypeScript, citing only his own experience, despite overwhelming community disapproval: https://github.com/hotwired/turbo/pull/971 It's a really cool pattern to have server-side rendering drive a specification that's used by web and native components alike. Airbnb uses this pattern to great effect: https://medium.com/airbnb-engineering/a-deep-dive-into-airbnbs-server-… - and ironically, they speak to the importance of strong typing of the data model as a way to control complexity. I really hoped that Turbo would be a way to make this pattern more mainstream. But, much like Unity, 37signals seems intent on taking actions that hurt its developer community, and it's hard to justify moving towards a solution with such antagonistic governance.
jacksparrow11 · 2023-05-24
Amazing! Our team at Airbnb built something similar for internal users: https://medium.com/airbnb-engineering/journey-platform-a-low-code-tool… Very cool how we both use Temporal for workflow orchestration. Love the git idea, Wish you the best!
rwhaling · 2023-02-09
Airbnb wrote a few great blog posts about why they built a standardized metrics layer - I think this one gives better technical context on the "what" and "why" than this announcement does: https://medium.com/airbnb-engineering/how-airbnb-achieved-metric-consi… (As the article notes, Transform's founders are Airbnb vets who worked on Minerva)
philsnow · 2022-05-27
Having helped build the production secret management bits at Airbnb [0], I would encourage most people to buy, not build. It was a large task and I'm 95% sure we didn't add more value than the cost of all the people working on it for as long as it took, compared to buying a solution. Just like the rest of Airbnb started before VPCs were GA and thus required a large engineering investment to move everything to VPCs, we started on the secret management stuff before there were a lot of good other options available (though arguably Hashicorp Vault was around and mature enough at the time, and would have been the best alternative). I haven't looked at envkey for production use but I've definitely considered it for home use since it's just so deliciously simple. [0] https://medium.com/airbnb-engineering/production-secret-management-at-…
gkaemmer · 2021-12-17
Yeah, although mostly variations on that basic premise. Airbnb Himeji: https://medium.com/airbnb-engineering/himeji-a-scalable-centralized-sy… Carta's AuthZ system: https://medium.com/building-carta/authz-cartas-highly-scalable-permiss… Slack's architecture is a bit different, but solves some of the same challenges: https://slack.engineering/role-management-at-slack/ I've also talked to a number of teams who just implemented pattern 3 internally with a custom service. Generally they've determined it's worth it to centralize all authorization data (like roles, groups, etc) into one place and perform ALL permission checks there. There are also some companies building essentially Zanzibar clones, like Auth0, Authzed, Ory Keto, and a few more.
apahwa · 2021-07-30
a bit self serving but I would recommend reading about Airbnb's Minerva (which I created). we leverage this data mesh concept to allow teams to define data independently and then Minerva handles blending the data from different teams together with guaranteed consistency. you can read more here: https://medium.com/airbnb-engineering/airbnb-metric-computation-with-m…
yzmtf2008 · 2021-07-13
IMO, SQS is one of the best products that AWS offers. Airbnb built a queueing + scheduling system on SQS to great success [0] (disclaimer, I wrote this post). There are many others, e.g., Slack, that are building on top of SQS. [0]: https://medium.com/airbnb-engineering/dynein-building-a-distributed-de…
irjustin · 2020-01-29
I'm always scared of these headlines for companies who aren't greenfield. Shopify is a perfect case for RN. Write once deploy both platforms. The issue that gets glossed over is for existing apps that have to do the data and abstraction layer on top of native codes. It starts to become prohibitively expensive to maintain the native, RN, and data layers unless you're willing to rewrite the native side. Airbnb fell into this problem[0] and so did my old company. I love RN for what it is and can do, but big companies that hop on and then are forced to hop off because of internal politics makes it a difficult case for RN because then it becomes "look, RN didn't work out for Airbnb or Shopify..." I hope for the best of luck and success to the RN engineers. [0] https://medium.com/airbnb-engineering/react-native-at-airbnb-f95aa460b…
bobthepanda · 2019-08-14
AirBnB has a series of in depth blog posts about their decision to abandon RN. In particular this quote seemed extremely worrying to me: > While debugging, React Native attaches to a Chrome Developer Tools instance. This is great because it is a powerful debugger. However, once the debugger is attached, all JavaScript runs within Chrome’s V8 engine. This is fine 99.9% of the time. However, in one instance, we got bit when toLocaleString worked on iOS but only worked on Android while debugging. It turns out that the Android JSC doesn’t include it and it was silently failing unless you were debugging in which case it was using V8 which does. Without knowing technical details like this, it can lead to days of painful debugging for product engineers. https://medium.com/airbnb-engineering/react-native-at-airbnb-the-techn…
adamkl · 2018-06-14
I've had a few discussions about doing a formal write-up of what we are doing, but for now I can only provide a brief overview: Our data APIs map from existing SOAP/XML services to small GraphQL sub-sections of our greater API. Then, we merge those small APIs together with Apollo's graphql-tools, similar to what Airbnb is doing[1]. Now we are starting work on our proxy/processing layers using this[2] work-in-progress. [1]https://medium.com/airbnb-engineering/reconciling-graphql-and-thrift-a… [2]https://github.com/adamkl/graphql-proxy
indogooner · 2018-02-18
Depends on my interests at the time but I prefer the blogs where the tech is open source so mostly Twitter[1] and LinkedIn[2] for me. I also follow Airbnb[3] primarily for their blogs on Data and ML (the area in which I work). Have occasionally looked at Uber and Netflix for some of the posts related to Big Data and ML. [1] https://blog.twitter.com/engineering/en_us.html [2] https://engineering.linkedin.com/blog [3] https://medium.com/airbnb-engineering
haney · 2017-06-20
We use AirBnB's Knowledge Repo project[1][2] for things like this at my company. I love the idea of making it easier to deploy things like this though. 1. https://medium.com/airbnb-engineering/scaling-knowledge-at-airbnb-875d… 2. https://github.com/airbnb/knowledge-repo
dabbott · 2023-03-30
Definitely agree on there being a lot of value in the napkin sketch on steroids approach, and that's where we're starting. Creating real designs and shipping to production within a constrained environment (e.g. https://medium.com/airbnb-engineering/a-deep-dive-into-airbnbs-server-… can be super high leverage, so that's ultimately where we want to go. Right now every company that wants to do this has to build it themselves. We didn't use an off-the-shelf solution like Webflow at Airbnb (afaik) because there was no realistic way to integrate it into our stack. I'm not sure if Noya's code export will be what people end up using for this - maybe some kind of JSON-config or something else will be the more useful artifact. As an analogy, Retool makes it easy to create internal tools, and is usable by more than just eng. But somebody on the eng team needs to first configure it a bit (e.g. plug in the company's data sources) before making real tools becomes possible/efficient. Noya will require a similar level of configuration to become usable in these more advanced scenarios, but we think the value it delivers will be worth the effort.
ogazitt · 2022-10-24
Two years ago, we founded Aserto to simplify authorization for developers. Authorization is critical and hard to get right, yet isn't a source of differentiation for most applications. Google [1], Airbnb [2], Netflix [3], Carta [4], Intuit [5], and others have written about their authorization systems. It's clear that these are all significant undertakings by sizable teams. Most engineering organizations don't want to spend their precious cycles reinventing this wheel. Over the last two years, we've collected a set of best practices that are common across these projects. We call these the Principles of Authorization [6]. Our goal has been to democratize these principles into an authorization service, and save you time and effort. Topaz [7] is an open source authorization system you can use to start building robust authorization in minutes. It provides fine-grained, real-time, policy-based access control for modern cloud applications. You can deploy it as a sidecar or a microservice in your cloud, ensuring low latency to your application. Topaz combines the best ideas from two cloud-native authorization ecosystems: OPA and Zanzibar. Read our blog post [8] for more on why we built Topaz. Happy hacking! [1] https://research.google/pubs/pub48190/ [2] https://medium.com/airbnb-engineering/himeji-a-scalable-centralized-sy… [3] https://www.infoq.com/presentations/authorization-scalability/ [4]…
EgeAytin · 2022-07-14
Hey HN! Ege from Permify here. Permify is an open-source authorization service and policy engine based on Google-Zanzibar[0] with our own twist. Me and my co-founders have known each other for years since high school. And we love building things. We have both worked with fortune 500 companies to small businesses [1], and every authorization system was unique. Yet we always tackle the same problems. - Modeling the authorization logic was hard. As the product grows things get complicated very fast. So, it’s challenging to design a model that’s both easy to start with and future-proof. [2] - Designing the architecture was a dread. It’s not a huge problem when you have a monolith. But when it comes to micro-services it’s a nightmare since authorization data is a subset of application data. [3] - Authorization checks occur in so many places; like user interfaces, routers, API endpoints, database queries… So, choosing where to enforce authorization, and loading the authorization data is hard. So, Permify syncs your authorization data as relation tuples with CDC(Change Data Capture) from Databases you want to a DB you point at.[4] And based on this data you can get boolean returns for your access control checks. I know many alternatives had launched at HN over the course of time. So what’s the twist. What we concurrently encountered was orchestrating the authorization data was a nightmare. What you can except from Permify in following months; - Message broker to support more…
adamsvystun · 2021-07-02
I think this is an interesting approach, and I think many people in this thread are missing the point. When you are a company that needs to maintain multiple clients across platforms (web, android, ios, and so on) it is very hard to be good at 3 things at the same time: application performance, development velocity and cross-platform consistency. Every solution that currently exists sacrifices some of the points to improve others. For example: If you make a web app across platforms, then you sacrifice performance on mobile; If you use native apps everywhere, you sacrifice development velocity and cross-platform consistency. You might be wondering: isn't something like React Native or Flutter solve all those issues? Yes, on the surface it's a great fit. For only slight sacrifice in performance you get everything. That is why Airbnb have tried React Native initially, but decided to abandon it in the end due to technical and organizational issues (read mote here [1]). This is their new attempt at getting good trade-offs here. You get full performance because you are doing everything natively. You get solid cross-platform consistency and high development velocity, because you are making changes in one place. Bravo Airbnb! [1] https://medium.com/airbnb-engineering/sunsetting-react-native-1868ba28…
ardit33 · 2021-05-15
AirBnb went exactly through this transition and back... Coinbase is just behind by a couple of years. Perhaps Coinbase' engineers, are better, or a different breed from Airbnb' ones, or perhaps React Native has matured more since 2019. Can't give you an answer. Linkedin had the exact iteration years ago. They had one of the first NodeJS Apps, driven mobile apps, and made some glossy block posts, praising it. Then quietly went back to native. Facebook went back and forth with HTML 5 sound the same time, etc.. etc.. It is like seeing the same movie over and over, with just some minor plot twists, they tend to play out the same. Since the Java's Applets promise 'write once, run everywhere', this story instead has been always the 'write once, debug everywhere'. "Sunsetting React Native Due to a variety of technical and organizational issues, we will be sunsetting React Native and putting all of our efforts into making native amazing." https://medium.com/airbnb-engineering/sunsetting-react-native-1868ba28…
theossuary · 2019-04-03
A few examples I can think of off the top of my head: - AirBnB uses a model to recommend a daily price for a new listing. They have to base this off the area and how other similar listings are priced. - Uber has an entire team (maybe teams) dedicated to forecasting demand at a location/time, they distribute this information to divers so they can plan to be certain places at certain times to get more fares. - Uber collects your location 5 minutes before/after your ride. They use this (at least in part) to figure out where people normally go when they request to be dropped off at an address, and then they can optimize the drop-off location using that information. Really though, the trick is to find a problem that can be solved with machine learning, and where profit of the solution is multiple times the cost of developing it. The only way to spot these opportunities reliably is to have a lot of machine learning experience, and quite a bit of domain knowledge. It may be worth following some tech company ML engineering blogs to get a better grasp of how they leverage ML. [1]: https://medium.com/airbnb-engineering/aerosolve-machine-learning-for-h… [2]: https://eng.uber.com/forecasting-introduction/ [3]: https://www.npr.org/sections/alltechconsidered/2016/12/01/503985473/ub…
mythz · 2018-06-20
This release follows Airbnb posts describing their deep experience in React Native and why they ended up abandoning it: https://medium.com/airbnb-engineering/sunsetting-react-native-1868ba28… Based on the issues they've had with React Native [1] I believe they would've had a better experience with Dart and Flutter which also has a fast iterative dev experience with a productive language that lets you build both iOS and Android Apps from a single code-base. But in contrast to RN, Dart 2 is statically typed and AOT compiled into native ARM which enables better performance and doesn't have any of the JS VM issues Airbnb kept running into. I also prefer Flutter's x-plat approach of drawing all their widgets with Skia as it also mitigates the UI widget inconsistencies they would've had if they tried to wrap native widgets. Flutter widgets follow Material design by default but can also be themed to look like native iOS widgets (https://flutter.io/widgets/cupertino/). React Native nails the development experience but is plagued with issues which isn't clear if it's because it's architecturally flawed or that it's just poorly resourced and Facebook only cares about resolving their own issues. I've been burnt by the lack of support in React Native indiscriminately closing issues, which stopped me from wasting my time reporting any more issues and eventually stopped using React Native altogether. I've been pleasantly surprised by Flutter, it does what it says on the tin,…
amrrs · 2017-12-07
I have seen HN crowd hating R very similar to hating js. While I'm not getting into those details, I'd like to list a few reasons why I like R: - RStudio is simply great. I know Python has got Jupyter notebook but RStudio makes a good IDE for anyone (even beginners). - Python is great because it's easier for beginners to start doing magick without getting frustrated hence a good beginners language and it is more appropriate for R because anyone who wants to begin with Data Analytics, R is a lot easier - without trying to figure out how to install a new package, load a new package, make a plot or anything of that matter. Hence the fall out rate would be less. - Tidyverse. Without denial, it's a better Universe than Marvel's cinematic universe. Not a single day in my job goes without using dplyr. - While I've quoted tidyverse in general, ggplot2 - embracing the grammar of graphics has set a very nice standard for visualization libraries which matplotlib (the goto library of Python doesn't offer much) - Pandas is nothing but a library built on Numpy to offer R like data wrangling functions hence I'd like to consider dplyr and R's inbuilt data manipulation functions superior. There is no doubt that Python has its own advantages with single library scikit-learn and webservices, R is no way to be hated. Even millenial companies have found interest in R …
rockwotj · 2025-12-16
this isn’t the right way to look at it. It’s really server side rendering where the LLM is doing the markup language generation instead of a template. The custom UI is usually higher level. Airbnb has been doing this for years: https://medium.com/airbnb-engineering/a-deep-dive-into-airbnbs-server-…
JimDabell · 2025-01-17
Airbnb gave up on React Native just after that and wrote a series of articles about their experience: — https://medium.com/airbnb-engineering/sunsetting-react-native-1868ba28…
jitl · 2024-08-18
The author didn’t work at Airbnb, this post is just a reductive summary of a 2019 Airbnb blog post: https://medium.com/airbnb-engineering/avoiding-double-payments-in-a-di… The original post goes into much more detail.
esprehn · 2023-11-05
Airbnb converted many millions of lines gradually using automation and wrote about it: https://medium.com/airbnb-engineering/ts-migrate-a-tool-for-migrating-… And also open sourced the tooling: https://github.com/airbnb/ts-migrate
avree · 2023-08-16
Respectfully: who cares? When I go to Vercel (or any React project), I don't wonder if the company is from Meta. Lottie is open source, it's been spun off from Airbnb (https://medium.com/airbnb-engineering/continuing-our-support-of-lottie… and while I agree that the questions at the end of your post are valid, I don't think putting more "about them" is how to answer them - afaik where your 'data' is going has nothing to do with where the founders worked/lived.
emilper · 2023-01-09
"are all written entirely in Ruby on Rails" ... then promptly rewritten in something else :) https://medium.com/airbnb-engineering/rearchitecting-airbnbs-frontend-…
skipants · 2022-10-20
This is just the ledger table. In your case you would have a payment event table with one row and a join table that connects that event with all the ledger rows. That's what Airbnb seems to do: https://medium.com/airbnb-engineering/tracking-the-money-scaling-finan…

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close