ByteByteGo 03月22日 23:34
EP155: The Shopify Tech Stack
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文汇总了多篇技术文章,涵盖了单点登录(SSO)的工作原理、Java虚拟线程的特性、Redis与Memcached的对比、Shopify的技术栈,以及A16Z投资组合公司的招聘信息。此外,还介绍了QA Wolf的自动化测试服务,旨在帮助团队提高测试覆盖率和效率。

🔑 **单点登录(SSO)**:SSO允许用户使用单个身份凭证登录到不同的系统。其工作流程通常涉及用户访问系统、重定向到SSO身份验证服务器、验证凭证、创建全局会话和令牌,以及后续系统验证令牌以允许访问受保护资源。

💻 **Java虚拟线程**:Java 19和21引入了虚拟线程,这是一种轻量级线程,可以高效地创建数百万个线程,从而处理并发任务而不会浪费内存或CPU资源。虚拟线程在平台线程上运行,当虚拟线程执行阻塞操作时,JVM会将其从平台线程中卸载,释放平台线程以处理其他任务。

⚙️ **Redis vs Memcached**:Redis和Memcached都是常用的缓存解决方案。Redis提供了更丰富的数据结构,如哈希、有序集合和位图,使其适用于多种场景,如记录点击量、对用户列表进行排序和去重、缓存用户行为历史等。

🛍️ **Shopify技术栈**:Shopify是一个面向中小企业的多渠道电商平台。其技术栈包括Ruby、TypeScript、Lua和React用于编程语言和用户界面,Ruby on Rails、Nginx、OpenResty和GraphQL用于后端和服务器,MySQL、Redis和Memcached用于数据存储,以及GitHub、Docker、Kubernetes、GKE、BuildKite和ShipIt用于DevOps。

🚀 **QA Wolf自动化测试**:QA Wolf提供AI驱动的自动化测试服务,旨在提高测试覆盖率,减少QA周期。其目标是在几周内实现80%的自动化E2E测试覆盖率,并提供无限并行测试运行和24小时维护。

😘Kiss bugs goodbye with fully automated end-to-end test coverage (Sponsored)

Bugs sneak out when less than 80% of user flows are tested before shipping. However, getting that kind of coverage (and staying there) is hard and pricey for any team.

QA Wolf’s AI-native service provides high-volume, high-speed test coverage for web and mobile apps, reducing your organization’s QA cycle to less than 15 minutes.

They can get you:

Engineering teams move faster, releases stay on track, and testing happens automatically—so developers can focus on building, not debugging.

Drata’s team of 80+ engineers achieved 4x more test cases and 86% faster QA cycles.

⭐Rated 4.8/5 on G2.

Schedule a demo to learn more


This week’s system design refresher:


What Are AI Agents Really About?


What is SSO (Single Sign-On)?

Basically, Single Sign-On (SSO) is an authentication scheme. It allows a user to log in to different systems using a single ID.

The diagram below illustrates how SSO works.

The process is complete and the user gets back access to their account.

Over to you:


How Java Virtual Threads Work?

Virtual Threads are lightweight threads introduced in Java 19 (Preview) and Java 21 (Stable). They allow Java to create millions of threads efficiently, helping handle concurrent tasks without wasting memory or CPU.

Virtual Threads do not map 1:1 to OS Threads and do not replace the original Platform Threads. The Platform Threads are backed by the OS Threads and are sometimes also known as Carrier Threads in this context.

Think of the Platform Threads as a small group of workers, and Virtual threads as tasks. With Virtual threads, tasks are given to workers only when needed, allowing one worker to handle thousands of tasks efficiently.

Here’s how Virtual Threads work:

    Virtual Threads run on top of Platform Threads. The JVM schedules them onto a small number of Platform Threads.

    When a Virtual Thread starts, the JVM assigns it to a normal OS-backed Platform Thread.

    Virtual Threads can also handle CPU-intensive work, but their real advantage is in scenarios with a high number of I/O-bound or concurrent tasks.

    If the Virtual Thread performs a blocking operation (like I/O, database call, sleep, etc.), the JVM unmounts it from the Platform Thread. However, this does not block the underlying OS Thread as such.

    The Platform thread is freed up to handle another Virtual Thread.

    When the blocking operation finishes, the Virtual Thread is rescheduled on any available Platform thread.

Over to you: Have you used Virtual Threads?


Redis VS Memcached

The diagram below illustrates the key differences.

The advantages of data structures make Redis a good choice for:


The Shopify Tech Stack

Shopify is a multi-channel commerce platform for small and medium businesses. It allows merchants to create a shop and sell products wherever they want.

Here’s the Shopify Tech Stack, which powers more than 600,000 merchants and serves 80,000 requests per second during peak traffic.

    Programming Languages & UI: They use Ruby, Typescript, Lua, and React

    Backend & Servers: They use Ruby on Rails, Nginx, OpenResty, and GraphQL.

    Data: They use MySQL, Redis, and Memcached.

    DevOps: They use GitHub, Docker, Kubernetes, GKE, BuildKite, and ShipIt. ShipIt has been also made open source.

Reference: E-Commerce at Scale: Inside Shopify's Tech Stack


Hiring Now: Tech Roles

I attended the A16Z Speedrun Demo Day last week. Jordan Mazer from A16Z was kind enough to compile a list of their portfolio companies that are hiring:

You can find more job openings at a16z speedrun talent network


SPONSOR US

Get your product in front of more than 1,000,000 tech professionals.

Our newsletter puts your products and services directly in front of an audience that matters - hundreds of thousands of engineering leaders and senior engineers - who have influence over significant tech decisions and big purchases.

Space Fills Up Fast - Reserve Today

Ad spots typically sell out about 4 weeks in advance. To ensure your ad reaches this influential audience, reserve your space now by emailing sponsorship@bytebytego.com.

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

SSO Java虚拟线程 Redis Memcached Shopify 自动化测试 QA Wolf
相关文章