✨ FB’s Mercurial Choice, Going Without GraphQL, Simpler Concert Entries, & More
5 essential byte-sized reads for busy techies 🏋️♀️
New week - new tech trends! Welcome to our weekly newsletter made for dedicated professionals who wish to stay up to date with the latest and most interesting tech news, tutorials, projects, and more.
Here’s what’s new:
😎 Why Facebook Doesn’t Use Git: Discover the reasons behind Facebook's preference for Mercurial over Git leading to eye-opening insights.
✅ gRPC Decoded: The API Protocol That's Changing Everything: Explore gRPC, an open-source RPC framework by Google, enabling high-performance communication for microservices, real-time systems, and IoT applications with strong typing and extensibility.
👀 Reverse Engineering TicketMaster's Rotating Barcodes (SafeTix): Purchasing concert tickets via TicketMaster’s Mobile Entry (SafeTix) system is marketed as a security enhancement, but it often proves to be more of a hassle than a convenience for concert-goers.
🙄 Why, After 6 Years, I’m Over GraphQL: While GraphQL was once hailed as a revolutionary technology for APIs, it has become less favorable due to security, performance, and complexity concerns.
💨 How Fast Is JavaScript? Simulating 20,000,000 Particles: A developer tackled the challenge of simulating 1,000,000 particles at 60 frames per second on a mobile device using only CPU power in JavaScript.
Why Facebook Doesn’t Use Git (🔗 Read Paper)
When Greg Foster and his friends embarked on building Graphite, inspired by internal Facebook tooling, they never imagined the intricate history behind version control choices at tech giants.
Greg’s engineering background included personal projects, iOS development at Google, and infra development at Airbnb, with Git being a constant tool throughout his career. Greg’s journey with Graphite is inspired by Facebook's use of Mercurial over Git due to performance and collaboration benefits.
Key Points
Scaling Challenges and Performance: Facebook began with Git but faced performance issues as their codebase grew significantly larger than the Linux kernel. The process of "stat-ing" files in Git led to slow operations, prompting an exploration of alternatives.
Community and Collaboration: Initial feedback from Git maintainers suggested sharding the repository, which was not a viable solution for Facebook. The welcoming and collaborative nature of the Mercurial community played a crucial role in Facebook's decision.
Contributions and Improvements: Facebook contributed significant performance improvements to Mercurial. This collaboration resulted in better support for large monorepos and shaped the development landscape for future tools.
gRPC Decoded: The API Protocol That's Changing Everything (🔗 Read Paper)
gRPC, an open-source RPC framework initially developed by Google, revolutionizes communication between services across different environments by using Protocol Buffers (Protobuf) over HTTP/2.
This framework is pivotal in modern software architecture, especially for high-performance and low-latency applications used by renowned companies like Netflix, Kubernetes, and CockroachDB.
Key Points
Efficient Communication: gRPC's binary serialization and HTTP/2 transport ensure faster data exchange and lower latency compared to traditional REST APIs.
Versatile Use Cases: Ideal for microservices, real-time communication, and IoT applications, gRPC supports bidirectional streaming, making it suitable for complex, interactive systems.
Strong Typing and Extensibility: Utilizing Protobuf, gRPC enforces a clear API contract, enabling seamless integration and backward compatibility, crucial for evolving services.
Reverse Engineering TicketMaster's Rotating Barcodes (SafeTix) (🔗 Read Paper)
Despite purchasing concert tickets from TicketMaster, the transition from printable PDF tickets to the Mobile Entry (SafeTix) system has introduced new complexities for users in 2024. Gone are the days when one could easily print a ticket and carry it to the event without worries.
Key Points
Mobile Entry System: TicketMaster now issues tickets via a system called Mobile Entry (SafeTix), using a rotating barcode in their web or mobile app, which can cause issues when phone internet access is unavailable.
Challenges of Mobile Tickets: Unlike printable tickets that can be easily shared and viewed offline, the Mobile Entry system can fail if the phone loses connection, leading to potential chaos at event entry points.
Motivations Behind SafeTix: TicketMaster's SafeTix system aims to prevent ticket fraud and scalping, but also forces users into their ecosystem, restricting ticket transfers and collecting user data, raising privacy concerns.
Why, After 6 Years, I’m Over GraphQL (🔗 Read Paper)
GraphQL, once hailed as a revolutionary technology for APIs, has shown several challenges over time. Initially embraced for its flexibility and power, it has become less favorable due to security, performance, and complexity concerns.
Key Points
Attack Surface: Exposing a query language to untrusted clients inherently broadens the attack surface of an application. The variety of attacks is extensive, making mitigation a significant burden for developers.
Rate Limiting: GraphQL's inability to uniformly handle server load due to query complexity presents significant challenges. Effective rate limiting is difficult, often leading to performance issues and potential abuse by attackers.
Complexity: The various mitigations for GraphQL's security and performance issues add substantial complexity to codebases. While REST APIs also face challenges, their solutions are generally simpler and easier for developers to implement and understand.
How Fast Is JavaScript? Simulating 20,000,000 Particles (🔗 Read Paper)
In a groundbreaking experiment, a developer simulated 1,000,000 particles in real-time—achieving a staggering 60 frames per second—on a mobile device, relying solely on the computational power of the CPU and utilizing JavaScript.
By pushing the boundaries of what was thought achievable, this experiment not only demonstrates the evolving capabilities of web technologies but also opens new doors for interactive and immersive experiences on mobile platforms without the need for specialized hardware acceleration.
Key Points
Multi-Core Utilization: Recognizing the limitations of single-core performance on mobile CPUs, the developer employed Web Workers to distribute computation across multiple cores efficiently.
Optimized Data Handling: Leveraging TypedArrays and SharedArrayBuffers ensured tightly packed, contiguous data in memory, essential for minimizing CPU wait times and maximizing performance.
Interactive Enhancements: Adding interactivity, such as touch-based particle manipulation using physics principles, enhanced user engagement without compromising performance, marking a significant achievement in JavaScript-based simulations.
🎬 And that's a wrap! Have a good one and see you next time.