惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Vulnerabilities – Threatpost
T
The Blog of Author Tim Ferriss
S
SegmentFault 最新的问题
D
DataBreaches.Net
博客园_首页
罗磊的独立博客
B
Blog
T
Threat Research - Cisco Blogs
C
Cisco Blogs
GbyAI
GbyAI
Engineering at Meta
Engineering at Meta
WordPress大学
WordPress大学
G
GRAHAM CLULEY
H
Help Net Security
酷 壳 – CoolShell
酷 壳 – CoolShell
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
爱范儿
爱范儿
SecWiki News
SecWiki News
T
Threatpost
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Schneier on Security
Schneier on Security
T
The Exploit Database - CXSecurity.com
Google Online Security Blog
Google Online Security Blog
T
Tor Project blog
小众软件
小众软件
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Y
Y Combinator Blog
H
Hacker News: Front Page
V
V2EX
Security Latest
Security Latest
Cloudbric
Cloudbric
Simon Willison's Weblog
Simon Willison's Weblog
Attack and Defense Labs
Attack and Defense Labs
D
Darknet – Hacking Tools, Hacker News & Cyber Security
P
Proofpoint News Feed
博客园 - 三生石上(FineUI控件)
NISL@THU
NISL@THU
S
Secure Thoughts
Blog — PlanetScale
Blog — PlanetScale
博客园 - 司徒正美
V2EX - 技术
V2EX - 技术
Vercel News
Vercel News
P
Palo Alto Networks Blog
IT之家
IT之家
MyScale Blog
MyScale Blog
有赞技术团队
有赞技术团队
Application and Cybersecurity Blog
Application and Cybersecurity Blog
D
Docker
Google DeepMind News
Google DeepMind News
Webroot Blog
Webroot Blog

Yusuf Aytas

When Code Is Cheap, Does Quality Still Matter? Why Crouching Tiger, Hidden Dragon Is a Masterpiece Why We Ignore Advice The Mirror Is Part of the Machine When Too Many Maps Overlap on One Person The Work Runs on Different Maps Your Work Introduces You Trial By Fire The Dude Why Headcount Math Lies Capacity Is the Roadmap The Roadmap Is Not the System Torres del Paine W Trek Escaping Status Theater Incentives Drive Everything Scaling Culture Without Dilution What Good Looks Like Why Politics Appear How to Work with Me The Janus Protocol Multi-Horizon Delivery Framework What Good Execution Looks Like Managing Your Manager Why Kingdom of Heaven’s Director’s Cut Is Better AI Broke Interviews Most of What We Call Progress Managers Have Been Vibe Coding All Along Stop Wasting Brainpower Why Over-Engineering Happens Prisoner's Dilemma Climbing No More The Weekly Win Mevlana Candy Brewing Turkish Tea Onboarding Your Engineering Manager Technical Deep Dives Yapay Zekâ Çağında Bilgisayar Mühendisliği Building Remote Teams From Idea to Launch in 2 Weeks Reflecting on Software Engineering Handbook Representing the Business New Manager Survival Guide Take Self Reviews Seriously Chasing Real Respect The Invisible Difference Learning the Johari Window Management is a Lonely Place Simple Task Management AI Balance in Work PIP Manager Insights Engineering Manager Interview Preparation Work-Life Balance as a Manager Bridging the Management Disconnect Tech Hiring Bubble Bursts Traits for EMs Simple Acts of Recognition Matter The Question I Ask Every New Report The Reality of an Employer's Market Bridging Ideals and Reality Hiring Red Flags Why The Godfather Is So Damn Good Subteam Tenets No Fluff Please Losing a Top Performer Balancing Act of Reliability Building Trust in Engineering Teams Ideal Number of Direct Reports Overriding a People Leader’s Decision From Misperception to Promotion Perception vs Perspective Setting Goals From Engineer to Manager Getting Delegation Right Interviewing Your Future Boss Celebrating Our Book in Iceland Operational Skills Needed On Writing Software Engineering Handbook Charlie Munger Quotes Working with Dependencies From Las Vegas to Canyons Navigating Layoffs Handling Competitive Dynamics A Weekend Getaway to Malta Engineering Health Essentials Should Dev Managers Code? Confronting the Life on Pause Winning Eleven Kindness is A Choice Bireysel Katılımcılar ve Yöneticiler Leading from Where You Are The Subtle Art of Listening Coding in Leadership The Power of Consistency The Making of a Leader The Path to Leadership Embracing TikTok Talent Sourcing Journey Leading Self Managing Teams Cracking Coding Bottlenecks Quick Reflexes in Decision Making
Why Airport Security Feels Random
Yusuf Aytas · 2026-01-31 · via Yusuf Aytas

I’m about to take yet another flight, this time flying to India. I’m excited, but then I can’t seem to pass the thought of why the heck security checks are so random. I had to come early to the airport because I simply couldn't trust what would happen next. Over the years, I’ve been to so many airports and across so many countries. You might say it is culture, or people. Yeah, well, I’m not buying that as the fundamental explanation. Differences exist but the core of the problem isn’t geographic. Sitting at the airport, I’m thinking there is something deeper, much deeper. And being an engineer, I can’t help but think about what the heck is really wrong here. Is that a people problem? Is that a hardware problem? You know where I’m getting at, right? This is a system problem.

Everyone experiences airport security as:

  • wildly unpredictable
  • frustratingly inconsistent
  • sometimes fast, sometimes catastrophic

Here is the only data point: I saw the same failure modes in New York, Marrakesh, Nairobi, Lima, Almaty, Zurich, Athens, Beijing, Bangkok. You name it. These places have nothing in common. Different cultures, different budgets, different reputations, yet the same pattern emerges. One day you walk through like it is a fast lane; the next day, the same airport feels like absolute chaos. Everything everywhere at the same time.

So no, I don’t buy it’s just the country or city as the explanation. If the same behavior emerges everywhere, this can’t be a local flaw. This has to be a different problem. Now, I have enough time to analyze this before and during my flight and even more time to edit in my layover in Dubai. So, this is going to be fun.

Why airport security feels so random?Why airport security feels so random?

Why Is This Line So Random?

I’ve been angry. I’m betting you’ve been angry, too. The reason is. Drum roll please. Randomness. It’s not slow. Not security. It’s variance. If airport security were consistently slow, I would adapt. It simply isn’t. You arrive earlier and you lose time. That’s part of the reason why I would prefer trains over flights any time. 

Going to the same airport can feel completely different depending on the day, the hour, or even the lane you pick. There’s this famous saying that you should be missing a few flights a year. Well, I can’t afford that. I follow the rules. A few times, I still got stopped for seemingly no reason. I’m not counting the time I smuggled Irish butter to Bursa. Those ones are on me. That kind of randomness feels personal. It feels arbitrary.

So, my natural instinct is to explain it with human factors:

  • That officer is bad at their job.
  • This country is disorganized.
  • They are underpaid.
  • They don’t care.

Those explanations are comforting, I know. They localize the problem. If it is culture, people, or competence, then at least the chaos has a name. The issue is that the pattern does not change.

Nonetheless, you see sometimes the line flows perfectly until one person is stopped. All of a sudden, everything collapses after that. Sometimes there is no visible queue, yet nothing moves. Sometimes the system works flawlessly for an hour and then degrades for no obvious reason. That isn't a culture clash. That is non-deterministic latency. The system effectively has no guarantee of execution time because the state of the humans changes moment to moment.

Let’s think of Airport Security as a Distributed System

I have time. From the title, you can guess where this is going. If you model airport security as a system, the randomness starts to make sense. Airport security is not a single process. It is not one organization, one rulebook, or one decision-maker. It is a collection of loosely coupled components trying to coordinate in real time under stress. Sounds familiar?

You have airport authorities, national security agencies, private contractors, border control, airline policies, regulators, hardware vendors, and humans on rotating shifts, all interacting in the same physical space. Some of these components talk to each other. Many don’t. None of them fully control the whole thing.

That is a distributed system. In distributed systems, three things are always true:

  • components fail independently
  • latency is variable
  • coordination is expensive

Airport security exhibits all three, constantly.

A scanner goes offline and a lane suddenly stops its throughput. A staff member is reassigned and the system loses local knowledge. A rule changes, but the message propagates unevenly through signage, training, and habit. None of these failures bring the system down completely, but they distort it just enough to push it into weird states that we all hate.

From the outside, this looks like randomness. From the inside, it is a partial failure.

This is also why “just add more people” rarely fixes the problem. In distributed systems, adding more nodes without changing coordination patterns often makes things worse. You increase contention, not throughput. What matters is not how fast one part is, but how the slowest parts interact, recover, and hand off work when something goes wrong.

Once you see airport security this way, the behavior stops being mysterious. The system is not broken. It is behaving exactly like a large distributed system under constant partial failure and regulatory constraint. So, if we accept that airport security is a complex distributed system, we have to ask the next logical question: Why is this specific distributed system developed and managed so poorly? Let’s take a closer look at some areas.

Exception Handling Is the Normal Path

Here is my first aha moment. In small systems, exceptions are rare. Nonetheless, in large systems, exceptions are not rare because of the scale.

When I think about airport security, it is not a small system. Not even close. At scale, exceptions are not edge cases. They are the workload.

  • A bag gets flagged. Not because it is dangerous, but because it is… ambiguous.
  • A rule gets misunderstood. Or half-remembered. Or interpreted creatively.
  • A scanner acts up. Or goes offline. Or works, but only when it feels like it.
  • A passenger does one tiny thing outside the script, and now everybody has to improvise.

So the system keeps falling off the happy path. The happy path is fast. Almost elegant. On the flip side, the exception path is slow, manual, and awkward. And the exception path is where airport security cannot afford to be sloppy. They need to get it right. What do they do? They kill the throughput because manual resolution paths have these three properties:

  • They are serial. One officer, one bag, one decision, start to finish.
  • They are retry-heavy. A flagged bag gets pulled back into the flow and slows everyone else.
  • They are high-context. The call depends on judgment and local rules, and sometimes it climbs a human escalation chain.

This is the distributed systems version of everything is fine until it is not. And once it is not, the recovery path becomes the product. If your exception path is common and slow, it is not an exceptional path. It is your system. You just refuse to admit it.  From the inside, it is a system whose normal mode is manual recovery. Which leads to the next question: if exceptions are normal, why is the system still built like exceptions are rare?

Humans Are Stateful Nodes

Because the whole thing still quietly assumes a fantasy: that humans behave like stateless computers. Humans are stateful nodes. And state is poison at scale. A human operator carries a state whether you like it or not. Fatigue. Discretion. Mood. Memory. Confidence. Ego. Fear.

And unlike machines, humans do not reset cleanly between requests. So throughput is not just “how many lanes do we have” or “how good are the scanners.” Throughput depends on things nobody wants to put in a dashboard:

  • Who is on shift.
  • What time it is.
  • How many incidents happened in the last hour?
  • Whether the supervisor is the chill one or the strict one.
  • Whether the team is new, swapped, understaffed, or simply tired.

This is why the same airport can feel like two different airports. It is not that the rules changed. The state changed. And when state changes, you get what passengers experience as randomness:

  • Non-determinism.
  • Tail latency.
  • And the most insulting variable of all, luck.

In distributed systems, we already know this pattern. If stateful workers are on the critical path, variance is guaranteed. Because the state introduces hidden coupling. The process is no longer “same input, same output.” It becomes “same input, different output depending on invisible internal conditions.” That is literally what creates tail latency, those nightmare outlier delays that ruin your day even if the average looks fine.

And again, this is not about blaming people. My point is the opposite. This is what happens when you rely on humans as the primary coordination mechanism in a high-throughput system. You are asking stateful nodes to behave like stateless ones, under stress, with imperfect information, while being judged for mistakes they are incentivized not to make.

In software development, we have that, too. You get hero engineers. Tribal knowledge. Only Alice knows how this works. The system technically runs, but only because a few stateful humans are compensating for the missing design. Remove one person, shift the team, change the stress level, and suddenly the whole thing behaves differently. 

Pets, Not Cattle

Airport security is built like pets, not cattle. Each lane is unique. Each scanner has its problems. Each officer has their own tempo. Each terminal is its own little universe. Hence, when one node fails, the system doesn’t degrade. It almost halts.

A scanner goes down, then humans improvise. People get reshuffled. Rules get re-explained. Trays pile up. Passengers get upset. Throughput collapses, not because the failure is huge, but because there is no clean fallback.

No cheap replacement. No easy reroute. No elasticity.

That is the distributed systems lesson. Pet architectures do not scale. They panic and freeze. And it mirrors org execution during incidents. If you depend on irreplaceable components, one failure turns into chaos. Not because people are bad, but because the system has no graceful way to absorb the hit.

Coordination Dominates Throughput

Here’s another observation. Most of the delay is not scanning. It is coordination. Explaining the rules. Correcting behavior. Redirecting passengers. Answering the same questions, again and again, in real time, under stress. Most airports have different rules. Put your large electronics outside. Oh, here, we let you keep it in the bag.

Every clarification is a synchronous call. You stop the flow to resolve one person’s confusion.
Every correction is a lock. One tray, one officer, one “wait here,” and now the lane is stalled behind it. This is the hidden bottleneck.The system is not CPU-bound. It is not IO-bound. It is coordination-bound.

And coordination is expensive because it is mostly implicit. Half the rules live in signs people do not read. The other half lives in human memory. The rest lives in “how we do it here,” which changes by shift, lane, and airport.

Management-wise, this is the same execution tax you see everywhere: unclear ownership, verbal processes, invisible rules. When a system depends on constant coordination, it will feel random from the outside, even if everyone inside is trying their best. At this point, the problem is no longer technical. It’s organizational.

No SLO, No Accountability

Here is the root problem. No one owns the end-to-end experience. I don’t mean security as a concept. I mean the actual thing you feel as a passenger: time-to-airside, variance, tail latency, the occasional disaster day that makes you miss a flight. Those metrics do not belong to anyone. No one gets promoted for reducing tail latency. 

Instead, each component optimizes for what they are measured on. Compliance. Local correctness. Audit defensibility. In all honesty, that’s perfectly rational. If your job is to not get blamed, you optimize for being unblameable. But the result is predictable. Local optimization. Global dysfunction.

The whole system becomes a set of independent nodes doing the safest thing for themselves, even if it creates chaos for the passenger and inefficiency for everyone else. This is the execution truth: What isn’t owned decays quietly. That’s why I like the DRI concept so much.

And because no one owns time-to-airside, variance, or tail latency, the randomness just… stays. Year after year. Airport after airport.

Technical Debt

Even if everyone agreed on the problem, many airports still could not fix it. Because the system is buried under technical debt. The literal kind. Modern security wants long, automated lanes. Staging buffers. Clear physical separation between steps.

Many terminals were never built for that. They are decades old. Space-constrained. Structurally impossible to scale, especially vertically. So instead of redesign, you get workarounds. And workarounds eventually suck.  At some point, humans stop being operators and become the compatibility layer between old infrastructure and modern requirements.

That is physical technical debt. Running critical systems on end-of-life software is bad enough. Doing it with concrete, steel, and human bodies is worse. You cannot patch a terminal the way you patch a server.

And distributed systems have a brutal rule here: Legacy nodes set the tail latency for the entire network. One outdated terminal, one cramped checkpoint, one unfixable network device, and the whole system inherits its worst behavior. The average might improve. The variance will not.

The Feedback Loop

Variance does not just annoy passengers. It changes their behavior. When you cannot predict security time, you buy insurance. The insurance is time. You arrive earlier than you need to. Everyone does. Not evenly, but around the same anchors. Safe buffer. So instead of smoothing demand, uncertainty makes it cluster.

Clustering is deadly for queues. The checkpoint has a finite service rate and it cannot scale instantly. When arrivals bunch up, utilization spikes. Once a queue is running hot, it becomes fragile. Tiny disturbances that would be absorbed at low load become backlog: one manual bag check, one confused passenger, one scanner problem. The work stacks.

And backlog increases perceived variance. Now you cannot tell whether today is a five-minute day or a fifty-minute day, because the system’s state depends on what happened ten minutes ago. So passengers hedge even more next time, reinforcing the clustering.

Why This Is Familiar

If you have ever worked inside a large organization, none of this should feel exotic. Airports behave exactly like organizations. Fear of failure feeds the delay. They optimize for audit instead of outcome. They design for the happy path and pretend exceptions are rare. They rely on heroic humans to keep things running. The list goes on. Different domains. Similar failure pattern.

The line at airport security is not special. It is just a very public version of how complex systems fail when no one owns the whole, coordination is expensive, and humans are asked to compensate for missing design.

You have seen this before. Just not with plastic trays.

Closing Insight

After enough airports, I stopped seeing a line. I started seeing a system operating near its limits, shaped by partial failures, fragile coordination, and incentives that reward local safety over global flow. Nothing about it is mysterious. It behaves exactly the way a complex system behaves when no one owns the whole and variance is allowed to compound.

The frustration comes from misdiagnosis. We blame people, culture, or incompetence, when the real problem is design. Not malicious design. Just unmanaged design. A system that never decides what good looks like at the end-to-end level will quietly drift into randomness, no matter how well-intentioned the parts are.