# 30/04/2025 - Vapor Release

#### ⚙️ Serverless Infrastructure<br>

* Migration to Serverless Architecture
  * api3.mytoggle.io is now fully serverless, enabling significantly improved scalability during high-traffic spikes.<br>
  * middleware.mytoggle.io, api.mytoggle.io, and api2.mytoggle.io remain on a traditional EC2 setup for now.<br>
  * Queued actions are now processed faster and more reliably, improving overall system responsiveness.\ <br>
* Upgraded to Long-Term Support (LTS) Versions
  * PHP: Upgraded from 8.0.8 → 8.3<br>
  * MySQL: Upgraded from 5.7.44 → 8.4.4<br>
  * Laravel: Upgraded from version 8 → 11<br>

***

#### ⚡ Performance Improvements

* Completely restructured stock management logic, dramatically reducing database load.<br>
* Rewritten handling of API query budgeting, optimizing efficiency and database utilization<br>
* Increased Maximum Concurrent Users (MCU) to support higher simultaneous traffic volumes.\ <br>

***

#### 🧩 Services & Architecture

* The Apple/Google Wallet engine has been migrated to its own serverless API, isolating and scaling this service independently.<br>
* Images are now delivered via a new image service, supporting dynamic resizing and format conversion.<br>
* All assets (images, files) are now served from Amazon S3, eliminating reliance on EC2 storage.<br>
* Introduced a legacy API proxy to ensure older integrations remain functional without requiring updates. Note: These legacy services do not benefit from the new autoscaling capabilities.<br>
* All internal command line actions (such as creating webhooks) are now completed through the Vapor interface. <br>

***

#### 🐞 Bug Fixes

* Fixed an issue where oversized image uploads (e.g. product logos) caused Apple Wallet installs to fail.<br>
* Improved pending order fulfillment logic:
  * Previously, high-traffic spikes that delayed order fulfillment beyond 30 minutes, risking stock inconsistencies as held stock would be released back for sale after this time. This is now no longer an issue, and stock won’t be released as long as an order is fulfilled within 24 hours of creation - this should only affect orders held by fraud prevention systems that aren’t manually approved during this time.<br>
* Batch action jobs (e.g., Toggle Switches) are no longer limited to a fixed number of executions, improving flexibility and throughput.

\
:technologist: Jules

:technologist: Tom D


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://changelog.usetoggle.com/april-2025/30-04-2025-vapor-release.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
