Skip to content

Conversation

alan-agius4
Copy link
Collaborator

@alan-agius4 alan-agius4 commented Sep 3, 2025

This commit introduces a number of changes to the server bootstrapping process to make it more robust and less error-prone, especially for concurrent requests.

Previously, the server rendering process relied on a module-level global platform injector. This could lead to issues in server-side rendering environments where multiple requests are processed concurrently, as they could inadvertently share or overwrite the global injector state.

The new approach introduces a BootstrapContext that is passed to the bootstrapApplication function. This context provides a platform reference that is scoped to the individual request, ensuring that each server-side render has an isolated platform injector. This prevents state leakage between concurrent requests and makes the overall process more reliable.

BREAKING CHANGE:
The server-side bootstrapping process has been changed to eliminate the reliance on a global platform injector.

Before:

const bootstrap = () => bootstrapApplication(AppComponent, config);

After:

const bootstrap = (context: BootstrapContext) =>
  bootstrapApplication(AppComponent, config, context);

@angular-robot angular-robot bot added detected: feature PR contains a feature commit area: @angular/ssr labels Sep 3, 2025
@alan-agius4 alan-agius4 requested a review from jkrems September 3, 2025 09:20
@alan-agius4 alan-agius4 added the target: patch This PR is targeted for the next patch release label Sep 3, 2025
@alan-agius4 alan-agius4 changed the title feat(@angular/ssr): adopt bootstrapServerApplication for streamlined server bootstrap fix(@angular/ssr): adopt bootstrapServerApplication for streamlined server bootstrap Sep 3, 2025
@alan-agius4 alan-agius4 removed the detected: feature PR contains a feature commit label Sep 3, 2025
@alan-agius4 alan-agius4 added the action: review The PR is still awaiting reviews from at least one requested reviewer label Sep 3, 2025
@alan-agius4 alan-agius4 marked this pull request as ready for review September 3, 2025 09:22
@alan-agius4 alan-agius4 added target: major This PR is targeted for the next major release and removed target: patch This PR is targeted for the next patch release action: review The PR is still awaiting reviews from at least one requested reviewer labels Sep 3, 2025
@alan-agius4 alan-agius4 requested a review from jkrems September 9, 2025 07:20
@alan-agius4 alan-agius4 changed the title fix(@angular/ssr): adopt bootstrapServerApplication for streamlined server bootstrap feat(@angular/ssr): introduce BootstrapContext for isolated server-side rendering Sep 9, 2025
@angular-robot angular-robot bot added detected: breaking change PR contains a commit with a breaking change detected: feature PR contains a feature commit labels Sep 9, 2025
@alan-agius4 alan-agius4 force-pushed the server-app-bootstrap branch 2 times, most recently from 46866eb to 66cf119 Compare September 9, 2025 08:10
@alan-agius4 alan-agius4 added target: patch This PR is targeted for the next patch release target: rc This PR is targeted for the next release-candidate and removed target: major This PR is targeted for the next major release target: patch This PR is targeted for the next patch release target: rc This PR is targeted for the next release-candidate labels Sep 9, 2025
@alan-agius4 alan-agius4 added target: minor This PR is targeted for the next minor release target: major This PR is targeted for the next major release and removed target: minor This PR is targeted for the next minor release labels Sep 9, 2025
@angular-robot angular-robot bot added the area: build & ci Related the build and CI infrastructure of the project label Sep 10, 2025
@alan-agius4 alan-agius4 force-pushed the server-app-bootstrap branch 2 times, most recently from 8fb78d1 to ff31f07 Compare September 10, 2025 15:25
@alan-agius4 alan-agius4 added action: merge The PR is ready for merge by the caretaker and removed state: blocked labels Sep 10, 2025
@angular angular deleted a comment from ngbot bot Sep 10, 2025
@alan-agius4 alan-agius4 force-pushed the server-app-bootstrap branch 2 times, most recently from 44b8cd2 to 2e2140a Compare September 10, 2025 16:11
…de rendering

This commit introduces a number of changes to the server bootstrapping process to make it more robust and less error-prone, especially for concurrent requests.

Previously, the server rendering process relied on a module-level global platform injector. This could lead to issues in server-side rendering environments where multiple requests are processed concurrently, as they could inadvertently share or overwrite the global injector state.

The new approach introduces a `BootstrapContext` that is passed to the `bootstrapApplication` function. This context provides a platform reference that is scoped to the individual request, ensuring that each server-side render has an isolated platform injector. This prevents state leakage between concurrent requests and makes the overall process more reliable.

BREAKING CHANGE:
The server-side bootstrapping process has been changed to eliminate the reliance on a global platform injector.

Before:
```ts
const bootstrap = () => bootstrapApplication(AppComponent, config);
```

After:
```ts
const bootstrap = (context: BootstrapContext) =>
  bootstrapApplication(AppComponent, config, context);
```
See associated pull request for more information.
@alan-agius4 alan-agius4 merged commit 32b9fe9 into angular:main Sep 10, 2025
41 of 42 checks passed
@alan-agius4 alan-agius4 deleted the server-app-bootstrap branch September 10, 2025 16:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
action: merge The PR is ready for merge by the caretaker area: @angular/ssr area: build & ci Related the build and CI infrastructure of the project detected: breaking change PR contains a commit with a breaking change detected: feature PR contains a feature commit target: major This PR is targeted for the next major release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants