APNs batch delivery measurement Commit: 5a913f417b5ac7f6cdeb14f14c9a87ae1ee72515 Environment: Linux x86_64; Node v26.13.1; PostgreSQL 16-alpine; real relay queue callback and service layers; local HTTP APNs fixture; synthetic registered iOS devices; unchanged 10-second stage deadlines One warmup excluded; 7 measured batches per scenario. Same machine and driver on both commits. Times start at actual queue-consumer callback invocation. B response is fixture 200 response end; persistence is checked after batch settlement. Scenario: fast run | B request ms | B 200 response ms | batch ms | request order | consumer exit 1 | 9.831 | 9.887 | 20.012 | A1,B1,A2 | Success 2 | 5.296 | 5.361 | 11.308 | A1,B1,A2 | Success 3 | 5.883 | 5.935 | 11.472 | A1,B1,A2 | Success 4 | 4.377 | 4.418 | 10.360 | A1,B1,A2 | Success 5 | 4.876 | 4.928 | 9.022 | A1,B1,A2 | Success 6 | 5.990 | 6.037 | 12.309 | A1,B1,A2 | Success 7 | 7.910 | 7.955 | 13.997 | A1,B1,A2 | Success bRequestMs: {"median": 5.882720999999947, "min": 4.377063999999791, "max": 9.831478999999945, "spread": 5.454415000000154} bResponseMs: {"median": 5.934909999999945, "min": 4.418451999999888, "max": 9.886962999999923, "spread": 5.468511000000035} batchMs: {"median": 11.472329999999602, "min": 9.022163999999975, "max": 20.01179400000001, "spread": 10.989630000000034} Observed in every run: A1 before A2; all 3 jobs persisted; B1 and A2 status 200. A1 status 200. First measured run persisted attempt records: [ { "source_job_id": "130e43f4-511a-47c8-a105-1131fe1a136d", "device_id": "A", "apns_status": 200, "transport_error": null, "apns_id": "A1" }, { "source_job_id": "900fdde9-9ed0-448a-a28a-aeea5f7dd1c5", "device_id": "B", "apns_status": 200, "transport_error": null, "apns_id": "B1" }, { "source_job_id": "1cd29dda-62b9-4392-8229-330f15073412", "device_id": "A", "apns_status": 200, "transport_error": null, "apns_id": "A2" } ] Scenario: held run | B request ms | B 200 response ms | batch ms | request order | consumer exit 1 | 5.904 | 5.965 | 10013.795 | A1,B1,A2 | Success 2 | 3.563 | 3.620 | 10009.919 | A1,B1,A2 | Success 3 | 5.821 | 5.931 | 10009.888 | A1,B1,A2 | Success 4 | 2.976 | 3.024 | 10010.254 | A1,B1,A2 | Success 5 | 3.244 | 3.291 | 10009.988 | A1,B1,A2 | Success 6 | 3.228 | 3.304 | 10009.322 | A1,B1,A2 | Success 7 | 3.335 | 3.378 | 10008.001 | A1,B1,A2 | Success bRequestMs: {"median": 3.3347629999989294, "min": 2.975775999999314, "max": 5.9043929999998, "spread": 2.928617000000486} bResponseMs: {"median": 3.3775840000016615, "min": 3.023826000000554, "max": 5.965477000000192, "spread": 2.941650999999638} batchMs: {"median": 10009.919430999998, "min": 10008.000754, "max": 10013.795054, "spread": 5.794299999999566} Observed in every run: A1 before A2; all 3 jobs persisted; B1 and A2 status 200. A1 saved as transport failure at its unchanged stage deadline. First measured run persisted attempt records: [ { "source_job_id": "415580ed-7202-476e-a289-fbd1f038c15d", "device_id": "B", "apns_status": 200, "transport_error": null, "apns_id": "B1" }, { "source_job_id": "4e4cac7a-dc57-40f1-93dd-4ae5c82206d1", "device_id": "A", "apns_status": null, "transport_error": "APNs push-notification request failed during send in sandbox.", "apns_id": null }, { "source_job_id": "d9c91b18-23d9-451e-82e0-92987ac1382e", "device_id": "A", "apns_status": 200, "transport_error": null, "apns_id": "A2" } ] Scenario: held-body run | B request ms | B 200 response ms | batch ms | request order | consumer exit 1 | 3.810 | 3.846 | 10010.509 | A1,B1,A2 | Success 2 | 7.467 | 7.520 | 10086.846 | A1,B1,A2 | Success 3 | 11.275 | 11.348 | 10015.235 | A1,B1,A2 | Success 4 | 5.299 | 5.366 | 10014.456 | A1,B1,A2 | Success 5 | 3.556 | 3.598 | 10011.983 | A1,B1,A2 | Success 6 | 4.254 | 4.311 | 10012.090 | A1,B1,A2 | Success 7 | 3.895 | 3.955 | 10010.212 | A1,B1,A2 | Success bRequestMs: {"median": 4.254002999994555, "min": 3.5558400000008987, "max": 11.274849000008544, "spread": 7.719009000007645} bResponseMs: {"median": 4.311310999997659, "min": 3.5980580000032205, "max": 11.347706000000471, "spread": 7.749647999997251} batchMs: {"median": 10012.089613999997, "min": 10010.212140999996, "max": 10086.846045000013, "spread": 76.63390400001663} Observed in every run: A1 before A2; all 3 jobs persisted; B1 and A2 status 200. A1 saved as transport failure at its unchanged stage deadline. First measured run persisted attempt records: [ { "source_job_id": "d724152b-d701-462e-9727-1dbffbfe42d8", "device_id": "B", "apns_status": 200, "transport_error": null, "apns_id": "B1" }, { "source_job_id": "92d8f6bb-d13a-447b-a0fb-57842d83f2e6", "device_id": "A", "apns_status": null, "transport_error": "APNs push-notification request failed during read-response in sandbox.", "apns_id": null }, { "source_job_id": "a41cb852-8e56-4108-bf61-e8785a966d58", "device_id": "A", "apns_status": 200, "transport_error": null, "apns_id": "A2" } ] Scenario: in-flight run | B request ms | B 200 response ms | batch ms | request order | consumer exit 1 | 3.652 | 3.726 | 5.941 | B1 | Failure 2 | 5.164 | 5.219 | 6.376 | B1 | Failure 3 | 2.473 | 2.524 | 3.463 | B1 | Failure 4 | 2.529 | 2.574 | 3.586 | B1 | Failure 5 | 3.209 | 3.257 | 4.326 | B1 | Failure 6 | 2.033 | 2.079 | 3.107 | B1 | Failure 7 | 3.798 | 3.847 | 5.166 | B1 | Failure bRequestMs: {"median": 3.20920599999954, "min": 2.0332000000053085, "max": 5.164258999982849, "spread": 3.1310589999775402} bResponseMs: {"median": 3.2571360000001732, "min": 2.079366999998456, "max": 5.219473000004655, "spread": 3.140106000006199} batchMs: {"median": 4.3260190000000875, "min": 3.1072339999955148, "max": 6.37627199999406, "spread": 3.2690379999985453} A1 already claimed/in flight before invocation; A2 skipped. B1 persisted 200 before batch returned failure in every run. First measured run persisted attempt records: [ { "source_job_id": "fceda6fd-bd43-49cf-9ae3-1f6f4ac4f39b", "device_id": "A", "apns_status": null, "transport_error": null, "apns_id": null }, { "source_job_id": "1d226ebc-b490-413c-9d74-8aceb272db7f", "device_id": "B", "apns_status": 200, "transport_error": null, "apns_id": "B1" } ] Exact consumer callback extracted from this commit: (stream) => Effect.flatMap(ApnsDeliveries.ApnsDeliveries, (deliveries) => deliveries.processBatch(stream), ).pipe(Effect.provide(layerRuntime))