Turbopack Persistent Caching

This ad is not shown to multipass and full ticket holders
JSNation US
JSNation US 2025
November 17 - 20, 2025
New York, US & Online
See JS stars in the US biggest planetarium
Learn More
In partnership with Focus Reactive
Upcoming event
JSNation US 2025
JSNation US 2025
November 17 - 20, 2025. New York, US & Online
Learn more
Bookmark
Rate this content
Tobias Koppers
Tobias Koppers
29 min
12 Jun, 2025

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Tobias Koppers del equipo de Vercel TurboPack discute la implementación de caching persistente para el desarrollo a largo plazo de aplicaciones web, previendo un crecimiento significativo en el tamaño de las aplicaciones durante la próxima década. El papel de la IA en la escritura de código, la visión de TurboPack para construcciones instantáneas, los desafíos en el control de construcciones y el cambio hacia un rendimiento incremental con caching para construcciones más rápidas. TurboPack enfatiza hacer que las construcciones incrementales sean rápidas y que cada construcción sea incremental, enfocándose en construcciones incrementales confiables y granulares, manejo eficiente de cache granular en TurboEngine e invalidación automática de cache granular. El sistema optimiza el rendimiento a través de la integración eficiente de cache persistente, la persistencia del estado del gráfico, la optimización de bases de datos, la creación de capas persistentes personalizadas y la optimización de la eficiencia del tiempo de construcción. TurboPack se destaca con su enfoque único de caching de abajo hacia arriba, expansión a un empaquetador de propósito general y planes para mejorar la compatibilidad del framework. Además, la comparación con ESBuild destaca el énfasis en construcciones incrementales y la granularidad detallada del cache con un enfoque basado en tokens, casi similar a la IA.
Available in English: Turbopack Persistent Caching

1. Tobias Koppers sobre TurboPack y el Almacenamiento en Caché Persistente

Short description:

Tobias Koppers del equipo de Vercel TurboPack discute la implementación del almacenamiento en caché persistente para el desarrollo de aplicaciones web a largo plazo, previendo un crecimiento significativo en el tamaño de las aplicaciones durante la próxima década.

Mi nombre es Tobias Koppers y trabajo para Vercel en el equipo de TurboPack. Y quiero hablarles sobre la historia del almacenamiento en caché persistente que implementamos para TurboPack. Así que cuando comenzamos a trabajar en TurboPack, queríamos construir algo para los próximos 10 años. Así que primero reflexionamos sobre los últimos 10 años de desarrollo web, y notamos que las aplicaciones web han crecido mucho. Hace 10 años, algunas personas incluso usaban texto de script normal y ni siquiera usaban un bundler en el desarrollo web, o usaban Grunt o Gulp para concatenar cosas. Así que ahora extrapolamos eso para los próximos 10 años. Veremos que las aplicaciones web serán enormes en tamaño, y eso será un problema.

2. AI's Impact on TurboPack Build Vision

Short description:

El papel de la IA en la escritura de código, la visión de TurboPack para construcciones instantáneas, los desafíos en el control de la construcción y el cambio hacia el rendimiento incremental con almacenamiento en caché para construcciones más rápidas.

Y creamos esto básicamente hace dos años, y ahora si miras esto retrospectivamente, tiene mucho más sentido. Porque ahora ves que la IA está escribiendo todo el código, y puedes esperar que la IA escriba mucho más código en los próximos 10 años. Así que tiene sentido. Pero también teníamos este objetivo de construcciones instantáneas para TurboPack. Teníamos esta visión de que nadie debería esperar nunca a que una construcción termine. Básicamente deberías enviar tu código, e instantáneamente puedes compartir directamente ese código en la vista previa de implementación o la construcción terminada con tus compañeros de trabajo. O incluso la IA envía código y quiere compartirlo directamente contigo en una especie de ciclo de retroalimentación.

Así que esto está un poco en contraste entre sí, y hay incluso más problemas con eso. Ni siquiera podemos controlar todo el proceso de construcción. Queremos permitir plugins personalizados, transformaciones personalizadas, como los cargadores de webpack, o ni siquiera podemos controlar el código del usuario y todas las bibliotecas NPM que nos lanzan. Así que con todo eso, todavía podemos usar Rust para escribir código nativo, solo paralelismo para usar otros núcleos, pero eso no nos ayudará con todos estos problemas. Porque si hay algo lento en un plugin personalizado o en un cargador de webpack o en cualquier cosa que no tenemos control, eso romperá nuestro objetivo de construcciones instantáneas.

Así que necesitamos repensar eso, y necesitamos un enfoque diferente. Si tenemos que aceptar que algo de la construcción es lento, ¿cómo podríamos aún lograr nuestro objetivo de construcción instantánea? Así que nuestro enfoque fue que queríamos cambiar el enfoque. En lugar de centrarnos en el rendimiento bruto de la construcción, queríamos centrarnos en el rendimiento de la construcción incremental. Así que tal vez tengamos que aceptar que algunas cosas son lentas en la construcción inicial, pero podemos al menos asegurarnos de que nunca las volvamos a ejecutar. Básicamente lo hacemos más rápido que todas las otras construcciones, todas las construcciones incrementales. Y de hecho, en la práctica, casi todas las construcciones pueden tener un caché. En el desarrollo local y el servidor de desarrollo o algo, puedes tener un disco accesible, podemos almacenar cosas allí, podemos almacenar en caché cosas. E incluso en construcciones CI, casi todos los buenos proveedores de CI tienen la capacidad, la infraestructura para proporcionarte algunas capacidades de almacenamiento en caché.

QnA

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

El Núcleo de Turbopack Explicado (Codificación en Vivo)
JSNation 2023JSNation 2023
29 min
El Núcleo de Turbopack Explicado (Codificación en Vivo)
Tobias Koppers introduces TurboPack and TurboEngine, addressing the limitations of Webpack. He demonstrates live coding to showcase the optimization of cache validation and build efficiency. The talk covers adding logging and memorization, optimizing execution and tracking dependencies, implementing invalidation and watcher, and storing and deleting invalidators. It also discusses incremental compilation, integration with other monorepo tools, error display, and the possibility of a plugin system for Toolpag. Lastly, the comparison with Bunn's Builder is mentioned.
Rome, ¡una cadena de herramientas moderna!
JSNation 2023JSNation 2023
31 min
Rome, ¡una cadena de herramientas moderna!
Top Content
Rome is a toolchain built in Rust that aims to replace multiple tools and provide high-quality diagnostics for code maintenance. It simplifies tool interactions by performing all operations once, generating a shared structure for all tools. Rome offers a customizable format experience with a stable formatter and a linter with over 150 rules. It integrates with VCS and VLSP, supports error-resilient parsing, and has exciting plans for the future, including the ability to create JavaScript plugins. Rome aims to be a top-notch toolchain and welcomes community input to improve its work.
Componentes de Servidor con Bun
Node Congress 2023Node Congress 2023
7 min
Componentes de Servidor con Bun
Top Content
Bun is a modern JavaScript runtime environment that combines a bundler, transpiler, package manager, and runtime. It offers faster installation of NPM packages and execution of package.json scripts. Bun introduces a new JavaScript and TypeScript bundler with built-in support for server components, enabling easy RPC with the client. This allows for code splitting and running code that streamingly renders React or any other library from the server and mixes it with client code, resulting in less JavaScript sent to the client.
Desafíos para las Optimizaciones de Producción Incrementales
JSNation 2024JSNation 2024
32 min
Desafíos para las Optimizaciones de Producción Incrementales
TurboPack is a new bundle similar to Webpack, focusing on incremental builds to make them as fast as possible. Challenges in production builds include persistent caching, incremental algorithms, and optimizing export usage. The compilation process can be split into parsing and transforming modules, and chunking the module graph. TurboPack aims to achieve faster production builds through incremental optimization and efficiency. Collaboration and compatibility with other ecosystems are being considered, along with the design of a plugin interface and tree-shaking optimization.
Parcel 2: el Empaquetador Automágico
DevOps.js Conf 2021DevOps.js Conf 2021
8 min
Parcel 2: el Empaquetador Automágico
Parcel 2 is a ground-up rewrite of Parcel 1, a fast and scalable zero-configuration web application bundler used by large companies like Atlassian and Adobe. It offers a zero-config approach with good defaults, making it production-ready out of the box. The new features include a revamped plugin system, a configuration file, transformers for file conversion, optimizers for code compression, target support for different browsers, diagnostics for error debugging, and named pipelines for data and JavaScript in different formats. Parcel 2 also supports different import scenarios, such as importing JSON files with named pipelines and using query parameters for image optimization. It includes various performance improvements, stable caches, optimized data structures, enhanced code splitting and bundling, improved scope hosting, and better support for monorepos and libraries. A React example is provided to showcase the simplicity of Parcel and how to use it with React.
Bundlers: Una Profundización en las Herramientas de Construcción Modernas de JavaScript
JSNation 2025JSNation 2025
20 min
Bundlers: Una Profundización en las Herramientas de Construcción Modernas de JavaScript
Edoardo, DevRel at Storyblok, explains the importance of JavaScript bundlers and discusses Storyblok's migration to Vite. Challenges with old JavaScript applications are illustrated, emphasizing issues with global variables and dependency control. Optimizing JavaScript module loading through ES modules is discussed, highlighting browser compatibility and performance concerns. The process of creating and structuring JavaScript bundles is detailed, focusing on dependency graphs and module organization. Techniques for managing bundle execution, utilizing abstract syntax trees for code parsing, and implementing optimization strategies are explored, with a specific emphasis on Vite, hot module replacement, and development enhancements.