<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/the-api-grand-prix-the-dissolution-of-the-middle-guilds-and-the-direct-command-um3imajev" -->

---
title: The API Grand Prix — The Dissolution of the Middle...
description: A PHP framework (macropay-solutions/php-kernel) release removes all queue middleware classes (RateLimited, WithoutOverlapping, ThrottlesExceptions,...
canonical: https://daily.dev/posts/the-api-grand-prix-the-dissolution-of-the-middle-guilds-and-the-direct-command-um3imajev
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: The API Grand Prix — The Dissolution of the Middle Guilds and the Direct Command | daily.dev
og:description: A PHP framework (macropay-solutions/php-kernel) release removes all queue middleware classes (RateLimited, WithoutOverlapping, ThrottlesExceptions,...
og:url: https://daily.dev/posts/the-api-grand-prix-the-dissolution-of-the-middle-guilds-and-the-direct-command-um3imajev
og:image: https://api.daily.dev/og/posts/um3IMAjEV.png
og:image:alt: The API Grand Prix — The Dissolution of the Middle Guilds and the Direct Command
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# The API Grand Prix — The Dissolution of the Middle Guilds and the Direct Command

**[Medium](https://daily.dev/sources/medium_js)** · 5 min read · 1 upvotes · 0 comments

## Summary

A PHP framework (macropay-solutions/php-kernel) release removes all queue middleware classes (RateLimited, WithoutOverlapping, ThrottlesExceptions, SkipIfBatchCancelled, etc.) and replaces the Pipeline-based middleware chain in CallQueuedHandler with a lightweight try/finally dispatch. Cross-cutting concerns like rate limiting, atomic locking, and batch cancellation checks are moved directly into job handler methods via explicit dependency injection of CallQueuedCallable and Job objects, eliminating hidden pipeline overhead and memory taxes from empty middleware arrays.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://marius-ciclistu.medium.com/the-api-grand-prix-the-dissolution-of-the-middle-guilds-and-the-direct-command-00bb34b64753>

## Questions this post answers

### What changed in php-kernel version 1.0.0-RC-16 regarding queue middleware?

All queue middleware classes were deleted, including RateLimited, RateLimitedWithRedis, SkipIfBatchCancelled, ThrottlesExceptions, ThrottlesExceptionsWithRedis, and WithoutOverlapping. The Pipeline class was also removed from CallQueuedHandler.php and replaced with a native try/finally dispatch method, along with removal of the $middleware property and through() builder method from Queueable, Mailable, and related classes.

_Developers tracking breaking changes in queue pipelines can follow framework updates like this on daily.dev._

### How do you handle rate limiting and batch cancellation checks without queue middleware in php-kernel?

Cross-cutting concerns are handled through explicit dependency injection directly inside the job's execution method rather than through middleware wrappers. A method type-hints CallQueuedCallable to check batch()?->cancelled() for cancellation, or type-hints Job to call $job->release() after acquiring a lock via app('cache')->lock(), giving explicit, zero-overhead control.

_Anyone redesigning queue job handling can compare architectural approaches like this via daily.dev._

## Similar posts on daily.dev

- [The API Grand Prix — The Shattered Sigils and the Polyglot Uprising](https://daily.dev/posts/the-api-grand-prix-the-shattered-sigils-and-the-polyglot-uprising-yy8jubmhj) · Medium · 0 upvotes · 0 comments
- [Queue-Wide Inspection Methods in Laravel 13.8.0](https://daily.dev/posts/queue-wide-inspection-methods-in-laravel-13-8-0-hgzecxgmv) · Laravel News · 19 upvotes · 0 comments
- [The API Grand Prix — The Silent Heralds and the Polyglot Bridge](https://daily.dev/posts/the-api-grand-prix-the-silent-heralds-and-the-polyglot-bridge-dpyf2qwmd) · Medium · 1 upvotes · 0 comments

---

Tags: [#php](https://daily.dev/tags/php), [#dependency-injection](https://daily.dev/tags/dependency-injection)

[View this post on daily.dev](https://daily.dev/posts/the-api-grand-prix-the-dissolution-of-the-middle-guilds-and-the-direct-command-um3imajev)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"The API Grand Prix — The Dissolution of the Middle Guilds and the Direct Command","url":"https://daily.dev/posts/the-api-grand-prix-the-dissolution-of-the-middle-guilds-and-the-direct-command-um3imajev","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/the-api-grand-prix-the-dissolution-of-the-middle-guilds-and-the-direct-command-um3imajev"},"datePublished":"2026-07-25T12:16:58.881Z","dateModified":"2026-09-14T08:58:06.763Z","description":"A PHP framework (macropay-solutions/php-kernel) release removes all queue middleware classes (RateLimited, WithoutOverlapping, ThrottlesExceptions,...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/ce2e0550bfab37135cce6aaf9d16b4ca?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/ce2e0550bfab37135cce6aaf9d16b4ca?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Medium","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Medium","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/medium","url":"https://daily.dev/sources/medium_js"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/the-api-grand-prix-the-dissolution-of-the-middle-guilds-and-the-direct-command-um3imajev","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"php,dependency-injection","timeRequired":"PT5M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Medium","item":"https://daily.dev/sources/medium_js"},{"@type":"ListItem","position":3,"name":"The API Grand Prix — The Dissolution of the Middle Guilds and the Direct Command"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/the-api-grand-prix-the-dissolution-of-the-middle-guilds-and-the-direct-command-um3imajev#faq","mainEntity":[{"@type":"Question","name":"What changed in php-kernel version 1.0.0-RC-16 regarding queue middleware?","acceptedAnswer":{"@type":"Answer","text":"All queue middleware classes were deleted, including RateLimited, RateLimitedWithRedis, SkipIfBatchCancelled, ThrottlesExceptions, ThrottlesExceptionsWithRedis, and WithoutOverlapping. The Pipeline class was also removed from CallQueuedHandler.php and replaced with a native try/finally dispatch method, along with removal of the $middleware property and through() builder method from Queueable, Mailable, and related classes. Developers tracking breaking changes in queue pipelines can follow framework updates like this on daily.dev."}},{"@type":"Question","name":"How do you handle rate limiting and batch cancellation checks without queue middleware in php-kernel?","acceptedAnswer":{"@type":"Answer","text":"Cross-cutting concerns are handled through explicit dependency injection directly inside the job's execution method rather than through middleware wrappers. A method type-hints CallQueuedCallable to check batch()?->cancelled() for cancellation, or type-hints Job to call $job->release() after acquiring a lock via app('cache')->lock(), giving explicit, zero-overhead control. Anyone redesigning queue job handling can compare architectural approaches like this via daily.dev."}}]}
```

