Swiss News Hub
No Result
View All Result
  • Business
    • Business Growth & Leadership
    • Corporate Strategy
    • Entrepreneurship & Startups
    • Global Markets & Economy
    • Investment & Stocks
  • Health & Science
    • Biotechnology & Pharma
    • Digital Health & Telemedicine
    • Scientific Research & Innovation
    • Wellbeing & Lifestyle
  • Marketing
    • Advertising & Paid Media
    • Branding & Public Relations
    • SEO & Digital Marketing
    • Social Media & Content Strategy
  • Economy
    • Economic Development
    • Global Trade & Geopolitics
    • Government Regulations & Policies
  • Sustainability
    • Climate Change & Environmental Policies
    • Future of Work & Smart Cities
    • Renewable Energy & Green Tech
    • Sustainable Business Practices
  • Technology & AI
    • Artificial Intelligence & Automation
    • Big Data & Cloud Computing
    • Blockchain & Web3
    • Cybersecurity & Data Privacy
    • Software Development & Engineering
  • Business
    • Business Growth & Leadership
    • Corporate Strategy
    • Entrepreneurship & Startups
    • Global Markets & Economy
    • Investment & Stocks
  • Health & Science
    • Biotechnology & Pharma
    • Digital Health & Telemedicine
    • Scientific Research & Innovation
    • Wellbeing & Lifestyle
  • Marketing
    • Advertising & Paid Media
    • Branding & Public Relations
    • SEO & Digital Marketing
    • Social Media & Content Strategy
  • Economy
    • Economic Development
    • Global Trade & Geopolitics
    • Government Regulations & Policies
  • Sustainability
    • Climate Change & Environmental Policies
    • Future of Work & Smart Cities
    • Renewable Energy & Green Tech
    • Sustainable Business Practices
  • Technology & AI
    • Artificial Intelligence & Automation
    • Big Data & Cloud Computing
    • Blockchain & Web3
    • Cybersecurity & Data Privacy
    • Software Development & Engineering
No Result
View All Result
Swiss News Hub
No Result
View All Result
Home Technology & AI Software Development & Engineering

Load Testing with Impulse at Airbnb | by Chenhao Yang | The Airbnb Tech Weblog | Jun, 2025

swissnewshub by swissnewshub
10 June 2025
Reading Time: 22 mins read
0
Load Testing with Impulse at Airbnb | by Chenhao Yang | The Airbnb Tech Weblog | Jun, 2025

RELATED POSTS

Autonomous coding brokers: A Codex instance

Refactoring with Codemods to Automate API Modifications

Refactoring with Codemods to Automate API Modifications


Chenhao Yang

Complete Load Testing with Load Generator, Dependency Mocker, Site visitors Collector, and Extra

Authors: Chenhao Yang, Haoyue Wang, Xiaoya Wei, Zay Guan, Yaolin Chen and Fei Yuan

System-level load testing is essential for reliability and effectivity. It identifies bottlenecks, evaluates capability for peak site visitors, establishes efficiency baselines, and detects errors. At an organization of Airbnb’s measurement and complexity, we’ve realized that load testing must be sturdy, versatile, and decentralized. This requires the proper set of instruments to allow engineering groups to do self-service load assessments that combine seamlessly with CI.

Impulse is one in all our inner load-testing-as-a-service frameworks. It supplies instruments that may generate artificial hundreds, mock dependencies, and accumulate site visitors knowledge from manufacturing environments. On this weblog put up, we’ll share how Impulse is architected to reduce handbook effort, seamlessly combine with our observability stack, and empower groups to proactively tackle potential points.

Impulse is a complete load testing framework that enables service homeowners to conduct context-aware load assessments, mock dependencies, and accumulate site visitors knowledge to make sure the system’s efficiency beneath varied circumstances. It contains the next parts:

  1. Load generator to generate context-aware requests on the fly, for testing totally different eventualities with artificial or collected site visitors.
  2. Dependency mocker to mock the downstream responses with latency, in order that the load testing on the service beneath check (SUT) doesn’t have to contain sure dependent providers. That is particularly essential when the dependencies are vendor providers that don’t help load testing, or if the staff desires to regression load check their service throughout day-to-day deployment with out affecting downstreams.
  3. Site visitors collector to gather each the upstream and downstream site visitors from the manufacturing surroundings, after which apply the ensuing knowledge to the check surroundings.
  4. Testing API generator to wrap asynchronous workflows into synchronous API requires load testing.
Determine 1: The Impulse framework and its 4 primary parts

Every of those 4 instruments are unbiased, permitting service homeowners the flexibleness to pick out a number of parts for his or her load testing wants.

Load generator

Determine 2: Containerized load generator

Context conscious

When load testing, requests made to the SUT usually require some info from the earlier response or should be despatched in a particular order. For instance, if an replace API wants to supply an entity_id to replace, we should make sure the entity already exists within the testing surroundings context.

Our load generator device permits customers to put in writing arbitrary testing logic in Java or Kotlin and launch containers to run these assessments at scale in opposition to the SUT. Why write code as a substitute of DSL/configuration logic?

  • Flexibility: Programming languages are extra expressive than DSL and may higher help complicated contextual eventualities.
  • Reusability: The identical testing code can be utilized in different assessments, e.g., integration assessments.
  • Developer proficiency: Low/no studying curve to onboard, don’t have to discover ways to write testing logic.
  • Developer expertise: IDE help, testing, debugging, and so on.

Right here is an instance of artificial context-aware check case:

class HelloWorldLoadGenerator : LoadGenerator {
override droop enjoyable run() {
val createdEntity = sutApiClient.create(CreateRequest(title="foo", ...)).knowledge

// request with id from earlier response (context)
val updateResponse = sutApiClient.replace(UpdateRequest(id=createdEntity.id, title="bar"))

// ... different operations

// clear up
sutApiClient.delete(DeleteRequest(id=createdEntity.id))
}
}

Decentralized

The load generator is decentralized and containerized, which suggests every time a load check is triggered, a set of recent containers might be created to run the check. This design has a number of advantages:

  • Isolation: Load testing runs between totally different providers are remoted from one another, eliminating any interference.
  • Scalability: The variety of containers may be scaled up or down in response to the site visitors necessities.
  • Price effectivity: The containers are short-lived, as they solely exist through the load testing run.

What’s extra, as our providers are cloud based mostly, a delicate level is that the Impulse framework will evenly distribute the employees amongst all our knowledge facilities, and the load might be emitted evenly from all the employees. Impulse’s load generator ensures the general set off per second (TPS) is as configured. Primarily based on this, we will higher leverage the locality settings in load balancers, which may higher mimic the true site visitors distribution in manufacturing.

Execution

The load generator is designed to be executed within the CI/CD pipeline, which suggests we will set off load testing robotically. Builders can configure the testing spec in a number of phases, e.g., a heat up section, a gentle state section, a peak section, and so on. Every section may be configured with:

  • Take a look at circumstances to run
  • TPS (set off per second) of every check case
  • Take a look at length

Dependency mocker

Determine 3: Dependency mocker

Impulse is a decentralized framework the place every service has its personal dependency mocker. This will get rid of interference between providers and scale back communication prices. Every dependency mocker is an out-of-process service, which suggests the SUT behaves simply because it does in manufacturing. We run the mockers in separate situations to keep away from any affect on the efficiency of the SUT. The mock servers are all brief lived — they solely begin earlier than assessments run and shut down afterwards to save lots of prices and upkeep effort. The response latency and exceptions are configurable and the variety of mocker situations may be adjusted on demand to help giant quantities of site visitors.

Different noteworthy options:

  • You may selectively stub a few of the dependencies. At the moment, stubbing is supported for HTTP JSON, Airbnb Thrift, and Airbnb GraphQL dependencies.
  • The dependency mockers help use circumstances past load testing. As an example, integration assessments usually depend on different providers or third-party API calls, which can not assure a secure testing surroundings or may solely help splendid eventualities. Dependency mockers can tackle this by providing predefined responses or exceptions to totally check these flows.

Impulse helps two choices for producing mock responses:

  1. Artificial response: The response is generated by person logic, as in integration testing; the distinction is that the response comes from a distant (out-of-process) server with simulated latency.
    – Just like the load generator, the logic is written in Java/Kotlin code and incorporates request matching and response era.
    – Latency may be simulated utilizing p95/p99 metrics.
  2. Replay response: The response is replayed from the manufacturing downstream recording, supported by the site visitors collector element.

Right here is an instance of an artificial response with latency in Kotlin:

downstreamsMocking.each(
thriftRequest().having { it.message == "howdy" }
).returns { request ->
ThriftDownstream.Response.thriftEncoded(
HttpStatus.OK,
FooResponse.builder.reply("${request.message} world").construct()
)
}.with {
delay = latencyFromP95(p95=500.miliseconds, min=200.miliseconds, max=2000.miliseconds)
}

Site visitors collector

Determine 4: Site visitors collector

The site visitors collector element is designed to seize each upstream and downstream site visitors, together with the relationships between them. This method permits Impulse to precisely replay manufacturing site visitors throughout load testing, avoiding inconsistencies in downstream knowledge or habits. By replicating downstream responses — together with production-like latency and errors — by way of the dependency mocker, the system ensures high-fidelity load testing. In consequence, providers within the testing surroundings behave identically to these in manufacturing, enabling extra life like and dependable efficiency evaluations.

Testing API generator

We rely closely on event-driven, asynchronous workflows which might be essential to our enterprise operations. These embody processing occasions from a message queue (MQ) and executing delayed jobs. A lot of the MQ occasions/jobs are emitted from synchronous flows (e.g., API calls), so theoretically they are often coated by API load testing. Nevertheless, the true world is extra complicated. These asynchronous flows usually contain lengthy chains of occasion and job emissions originating from varied sources, making it tough to copy and check them precisely utilizing solely API-based strategies.


Support authors and subscribe to content

This is premium stuff. Subscribe to read the entire article.

Login if you have purchased

Subscribe

Gain access to all our Premium contents.
More than 100+ articles.
Subscribe Now

Buy Article

Unlock this article and gain permanent access to read it.
Unlock Now
Tags: AirbnbBlogChenhaoImpulseJunLoadTechTestingYang
ShareTweetPin
swissnewshub

swissnewshub

Related Posts

Autonomous coding brokers: A Codex instance
Software Development & Engineering

Autonomous coding brokers: A Codex instance

5 June 2025
Refactoring with Codemods to Automate API Modifications
Software Development & Engineering

Refactoring with Codemods to Automate API Modifications

2 June 2025
Refactoring with Codemods to Automate API Modifications
Software Development & Engineering

Refactoring with Codemods to Automate API Modifications

1 June 2025
Rising the Improvement Forest 🌲 — with Martin Fowler
Software Development & Engineering

Rising the Improvement Forest 🌲 — with Martin Fowler

31 May 2025
Listening, Studying, and Serving to at Scale: How Machine Studying Transforms Airbnb’s Voice Help Expertise | by Yuanpei Cao | The Airbnb Tech Weblog | Could, 2025
Software Development & Engineering

Listening, Studying, and Serving to at Scale: How Machine Studying Transforms Airbnb’s Voice Help Expertise | by Yuanpei Cao | The Airbnb Tech Weblog | Could, 2025

30 May 2025
Rising Patterns in Constructing GenAI Merchandise
Software Development & Engineering

Rising Patterns in Constructing GenAI Merchandise

28 May 2025
Next Post
CIO Recruitment Traits

CIO Recruitment Traits

Clear Alerts Make It Simpler to Do the Proper Issues

Clear Alerts Make It Simpler to Do the Proper Issues

Recommended Stories

A CRM Implementation Information for B2B Gross sales Success

A CRM Implementation Information for B2B Gross sales Success

28 May 2025
A New Chapter for Kusama | Web3 Basis Proposes 10M DOT Initiative to Gasoline ZK Innovation and Community Sovereignty | by Web3 Basis Workforce | Web3 Basis

A New Chapter for Kusama | Web3 Basis Proposes 10M DOT Initiative to Gasoline ZK Innovation and Community Sovereignty | by Web3 Basis Workforce | Web3 Basis

26 May 2025

East Ventures to raise funds to produce Covid-19 test kits

21 March 2025

Popular Stories

  • The politics of evidence-informed coverage: what does it imply to say that proof use is political?

    The politics of evidence-informed coverage: what does it imply to say that proof use is political?

    0 shares
    Share 0 Tweet 0
  • 5 Greatest websites to Purchase Twitter Followers (Actual & Immediate)

    0 shares
    Share 0 Tweet 0

About Us

Welcome to Swiss News Hub —your trusted source for in-depth insights, expert analysis, and up-to-date coverage across a wide array of critical sectors that shape the modern world.
We are passionate about providing our readers with knowledge that empowers them to make informed decisions in the rapidly evolving landscape of business, technology, finance, and beyond. Whether you are a business leader, entrepreneur, investor, or simply someone who enjoys staying informed, Swiss News Hub is here to equip you with the tools, strategies, and trends you need to succeed.

Categories

  • Advertising & Paid Media
  • Artificial Intelligence & Automation
  • Big Data & Cloud Computing
  • Biotechnology & Pharma
  • Blockchain & Web3
  • Branding & Public Relations
  • Business & Finance
  • Business Growth & Leadership
  • Climate Change & Environmental Policies
  • Corporate Strategy
  • Cybersecurity & Data Privacy
  • Digital Health & Telemedicine
  • Economic Development
  • Entrepreneurship & Startups
  • Future of Work & Smart Cities
  • Global Markets & Economy
  • Global Trade & Geopolitics
  • Government Regulations & Policies
  • Health & Science
  • Investment & Stocks
  • Marketing & Growth
  • Public Policy & Economy
  • Renewable Energy & Green Tech
  • Scientific Research & Innovation
  • SEO & Digital Marketing
  • Social Media & Content Strategy
  • Software Development & Engineering
  • Sustainability & Future Trends
  • Sustainable Business Practices
  • Technology & AI
  • Uncategorised
  • Wellbeing & Lifestyle

Recent News

  • Clear Alerts Make It Simpler to Do the Proper Issues
  • CIO Recruitment Traits
  • Load Testing with Impulse at Airbnb | by Chenhao Yang | The Airbnb Tech Weblog | Jun, 2025
  • Scientists Urge NIH Director to Restore Analysis Grants Halted by Trump Administration
  • Cottage Cheese Breakfast Biscuits – Match Foodie Finds

© 2025 www.swissnewshub.ch - All Rights Reserved.

No Result
View All Result
  • Business
    • Business Growth & Leadership
    • Corporate Strategy
    • Entrepreneurship & Startups
    • Global Markets & Economy
    • Investment & Stocks
  • Health & Science
    • Biotechnology & Pharma
    • Digital Health & Telemedicine
    • Scientific Research & Innovation
    • Wellbeing & Lifestyle
  • Marketing
    • Advertising & Paid Media
    • Branding & Public Relations
    • SEO & Digital Marketing
    • Social Media & Content Strategy
  • Economy
    • Economic Development
    • Global Trade & Geopolitics
    • Government Regulations & Policies
  • Sustainability
    • Climate Change & Environmental Policies
    • Future of Work & Smart Cities
    • Renewable Energy & Green Tech
    • Sustainable Business Practices
  • Technology & AI
    • Artificial Intelligence & Automation
    • Big Data & Cloud Computing
    • Blockchain & Web3
    • Cybersecurity & Data Privacy
    • Software Development & Engineering

© 2025 www.swissnewshub.ch - All Rights Reserved.

Are you sure want to unlock this post?
Unlock left : 0
Are you sure want to cancel subscription?