Systems | Development | Analytics | API | Testing

Performance Considerations with Offset and Cursor Pagination in Plain PHP and Doctrine ORM

Displaying a list of items from the database is probably the most common functionality built for web applications. This is where pagination with LIMIT clause comes into play, which is most likely what you learned to use. This pattern is called offset pagination. In this post I am going to contrast it with cursor pagination and the performance considerations that come with the choice of pagination algorithm. Examples are with Plain PHP and Doctrine ORM 3.7, which ships a new CursorPaginator class.

AI-Native CI/CD Testing: Building Reliable Release Pipelines for AI Applications

Traditional CI/CD pipelines relied on determinism, assuming code produced an exact, repeatable output. Generative models and agentic workflows break this model. A single prompt edit or model checkpoint update can pass standard unit tests while causing silent regressions like truncated API payloads or missing parameters five steps downstream. To ship probabilistic AI reliably, engineering teams must redefine what counts as a passing test.

Structured Logging: A Complete Guide with Examples

Plain-text logs are great if you want a simple explanation of how a function is performing or why a crash happened. But as your application grows, they become difficult to search and analyze. Structured logging makes production data easier to filter, correlate, and use across modern logging tools. This guide will give you the springboard to build structured logs effectively, showing you how to.

Feature Spotlight: Session-based Replay #trafficanalysis #api #developertools #techtutorial

This video provides an overview of using Sessions to group traffic by actor credentials, track individual user journeys chronologically, and analyze request flows. It also covers how to check replay readiness for JWT sessions, replay recorded user journeys at their original pace, verify pass/fail counts, and save or sample specific sessions for easy sharing. Learn more: speedscale.com.

Feature Spotlight: Import & Export to Load Testing Tools #api #postman #openapi #loadtesting #devops

Proxymock allows you to import existing Postman collections, browser HAR files, and OpenAPI specifications to instantly create test requests and mock responses. You can also pull traffic directly from cloud storage buckets, or export your requests into load testing scripts for tools like K6, Gatling, and Locust. Coding agents can even manage these imports and exports using integrated MCP tools. Learn more: speedscale.com.

Feature Spotlight: Testing GraphQL #graphql #apitesting #developertools #techtutorial #devops

Learn how to resolve failed GraphQL session queries by updating expired tokens before replaying your snapshot. This video demonstrates how to find the GraphQL operation, edit variable values by path, and successfully pass replay checks. Learn more: speedscale.com.

Feature Spotlight: Replay Progress Tracking #kubernetes #mocktest #devops #appperformance

Learn how to track cluster performance in real time using the replay progress panel, which highlights key phases including provision, mock, app, load, analyze, and result. You will also discover how to easily troubleshoot failed runs by expanding component lanes to review specific step reasons and cluster events. Learn more: speedscale.com.

Feature Spotlight: Automatic Testing with Proxymock MCP Skills #aiagents #mcpserver #softwaretesting

Learn how to integrate your AI coding agent with Speedscale using the MCP server to record, replay, tune mocks, and analyze reports directly within your workspace. Streamline your testing workflow by letting your agent automatically capture traffic, resolve failing responses, and optimize match rates. Learn more: speedscale.com.

Resumable token streaming: why AI streams break on reconnect

Refresh the page, lose signal, switch tabs. Users expect the AI conversation to still be there when they return, with the answer picking up where it left off. Resumable token streaming makes that possible: a returning client catches up with the in-progress response instead of starting over. Making a stream resumable is an architecture decision. Starting generation, storing the response, and delivering it need to happen in separate parts of your stack.