41554 blogs Β· [ { "id": "01a0878a-3cc5-734c-a175-a0d67b9279be", "title": "Through the Gates of Angkor Thom, to Bayon", "url": "https://james-carr.org/posts/2026-08-17-through-the-gates-of-angkor-thom-to-bayon/", "published_at": "2026-08-17T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d67c51f873", "title": "The Route Table Is the Contract: Claim Checks Behind a Gateway", "url": "https://james-carr.org/posts/2026-07-29-stop-treating-your-object-store-like-a-shared-database/", "published_at": "2026-07-29T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d67c844c78", "title": "Oban for Python: PostgreSQL-Backed Job Processing Without the Baggage", "url": "https://james-carr.org/posts/2026-04-06-oban-python-job-processing/", "published_at": "2026-04-06T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d67d6bb4a3", "title": "Seven Hosting Patterns for AI Agents", "url": "https://james-carr.org/posts/2026-03-01-agent-hosting-patterns/", "published_at": "2026-03-01T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d67df460ba", "title": "Your Next Power User Is an Agent: Identifying Non-Human API Consumers", "url": "https://james-carr.org/posts/2026-03-01-identifying-agents-using-your-api/", "published_at": "2026-03-01T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d67ed9f7db", "title": "Temporal Patterns: Durable AI Agents with Multi-Model Scatter/Gather", "url": "https://james-carr.org/posts/2026-02-05-temporal-durable-ai-agents/", "published_at": "2026-02-05T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d67f66c2bc", "title": "Temporal Patterns: Process Manager with Signals", "url": "https://james-carr.org/posts/2026-02-03-temporal-process-manager/", "published_at": "2026-02-03T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d67fac268f", "title": "Temporal Patterns: Scatter-Gather for Parallel Queries", "url": "https://james-carr.org/posts/2026-02-03-temporal-scatter-gather/", "published_at": "2026-02-03T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d67faf7c90", "title": "Temporal: Durable Execution That Survives the Apocalypse", "url": "https://james-carr.org/posts/2026-01-29-temporal-workflow-orchestration/", "published_at": "2026-01-29T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d680162e4e", "title": "Event-Driven Systems with NATS and Jetstream", "url": "https://james-carr.org/posts/2026-01-21-nats-jetstream-building-reliable-messaging/", "published_at": "2026-01-20T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d681124025", "title": "From AsyncAPI to Service Catalog: Tracing Event Flows with Backstage", "url": "https://james-carr.org/posts/2026-01-20-asyncapi-backstage-service-catalog/", "published_at": "2026-01-20T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d681810205", "title": "AsyncAPI: Bringing OpenAPI to Event-Driven Systems", "url": "https://james-carr.org/posts/2026-01-16-asyncapi-event-driven-documentation/", "published_at": "2026-01-16T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d6821c7369", "title": "The Transactional Outbox Pattern: Reliable Event Publishing", "url": "https://james-carr.org/posts/2026-01-15-transactional-outbox-pattern/", "published_at": "2026-01-15T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d682d5b4e2", "title": "πŸŽ„ Advent of EIP Day 11: Wire Tap & Control Bus", "url": "https://james-carr.org/posts/2026-01-13-advent-of-eip-day-11-wire-tap-control-bus/", "published_at": "2026-01-13T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d682d8aafe", "title": "πŸŽ„ Advent of EIP Day 12: Frameworks", "url": "https://james-carr.org/posts/2026-01-13-advent-of-eip-day-12-frameworks/", "published_at": "2026-01-13T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d682e23ae4", "title": "πŸŽ„ Advent of EIP Day 11: Saga", "url": "https://james-carr.org/posts/2026-01-07-advent-of-eip-day-11-saga/", "published_at": "2026-01-04T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d683884db4", "title": "πŸŽ„Advent of EIP Day 10: Process Manager", "url": "https://james-carr.org/posts/2026-01-05-advent-of-eip-day-10-process-manager/", "published_at": "2026-01-04T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d683956916", "title": "πŸŽ„ Advent of EIP Day 9: Routing Slip", "url": "https://james-carr.org/posts/2026-01-02-advent-of-eip-day-9-routing-slip/", "published_at": "2026-01-01T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d6845f62c4", "title": "πŸŽ„ Advent of EIP Day 8: Building a Production Webhook Delivery Platform", "url": "https://james-carr.org/posts/2025-12-31-advent-of-eip-day-8-webhook-delivery-platform/", "published_at": "2025-12-31T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d6848c25bd", "title": "πŸŽ„ Advent of EIP Day 7: Switchboards, Webhooks, and Everything In Between", "url": "https://james-carr.org/posts/2025-12-30-advent-of-eip-day-7-request-reply-correlation/", "published_at": "2025-12-30T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d6849c365d", "title": "πŸŽ„ Advent of EIP Day 9: Bulkhead Pattern for Multi-Tenancy", "url": "https://james-carr.org/posts/2025-12-26-advent-of-eip-day-9-bulkhead-pattern/", "published_at": "2025-12-26T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d685721d44", "title": "πŸŽ„ Advent of EIP Day 6: Canonical Data Model & Message Transformation", "url": "https://james-carr.org/posts/2025-12-23-advent-of-eip-day-6-canonical-data-model/", "published_at": "2025-12-23T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d6863ebc32", "title": "πŸŽ„ Advent of EIP Day 5: Message Types & Event Payload Strategies", "url": "https://james-carr.org/posts/2025-12-22-advent-of-eip-day-5-message-types-and-event-strategies/", "published_at": "2025-12-22T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d6871b2eb8", "title": "πŸŽ„ Advent of EIP Day 4: Message Routing Patterns", "url": "https://james-carr.org/posts/2025-12-21-advent-of-eip-day-4-message-routing/", "published_at": "2025-12-21T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d68738ad31", "title": "πŸŽ„ Advent of EIP Day 3: Message Channels", "url": "https://james-carr.org/posts/2025-12-20-advent-of-eip-day-3-message-channels/", "published_at": "2025-12-20T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d6882ade7a", "title": "πŸŽ„ Advent of EIP Day 2: Message Endpoints & Pipes and Filters", "url": "https://james-carr.org/posts/2025-12-17-advent-of-eip-day-2-message-abstractions/", "published_at": "2025-12-17T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d688337a77", "title": "πŸŽ„ Advent of EIP Day 1: Integration Styles & Point-to-Point Channels", "url": "https://james-carr.org/posts/2025-12-16-advent-of-eip-day-1-integration-styles/", "published_at": "2025-12-16T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d6884bc9ed", "title": "πŸŽ„ Advent of Enterprise Integration Patterns", "url": "https://james-carr.org/posts/2025-12-15-advent-of-enterprise-integration-patterns/", "published_at": "2025-12-15T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d68890781f", "title": "🎬 90s Movies Were Always About Reality Controlβ€”Now We Really Get It", "url": "https://james-carr.org/posts/90s-movies-algorithmic-reality/", "published_at": "2025-11-23T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d6892acd5e", "title": "🐰 Elixir Basics: Working with AMQP", "url": "https://james-carr.org/posts/2024-10-15-elixir-basics-working-with-amqp/", "published_at": "2024-10-15T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d6899d5543", "title": "⏱️ Elixir Basics: Multi-Process Interval Timer", "url": "https://james-carr.org/posts/2024-10-09-elixir-basics-multiprocess-interval-timer/", "published_at": "2024-10-09T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d68a1c5dec", "title": "πŸ’» Building Beautiful Admin Dashboards in Phoenix with Backpex", "url": "https://james-carr.org/posts/2024-08-27-phoenix-admin-with-backpex/", "published_at": "2024-08-27T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d68a24cfc3", "title": "🧠 Dynamic Key/Value Pair Inputs in Phoenix LiveView Forms", "url": "https://james-carr.org/posts/2024-08-19-dynamic-keyvalue-pair-inputs-in-phoenix-liveview-forms/", "published_at": "2024-08-19T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d68a66f0ad", "title": "πŸ› οΈ Managing Development Environments with Mise", "url": "https://james-carr.org/posts/2024-08-14-managing-development-environments-with-mise/", "published_at": "2024-08-14T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d68a8b7a41", "title": "πŸ’‘ The Pivot", "url": "https://james-carr.org/posts/2024-07-29-the-pivot/", "published_at": "2024-08-05T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d68b88208c", "title": "🏰 A Day Exploring Berlin", "url": "https://james-carr.org/posts/a-day-in-berlin/", "published_at": "2023-11-27T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d68c00551e", "title": "πŸ“· A Photo That Means the World to Me", "url": "https://james-carr.org/posts/a-photo-that-means-the-world-to-me/", "published_at": "2023-11-15T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d68c0bc952", "title": "πŸ‡©πŸ‡ͺ My Solo Journey Through Germany", "url": "https://james-carr.org/posts/2023-solo-trip-germany/", "published_at": "2023-11-08T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d68caf4ad6", "title": "πŸ“ˆπŸ’°β˜οΈ The Rise of FinOps: How Cloud Financial Operations Are Transforming Business", "url": "https://james-carr.org/posts/the-rise-of-finops/", "published_at": "2023-04-02T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d68cf33aa1", "title": "πŸ“˜ The Ideal Team Player: A Book Review and Practical Application", "url": "https://james-carr.org/posts/ideal-team-player-review/", "published_at": "2023-03-29T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d68da91c68", "title": "πŸ’ͺ The Value of Hard Work: Lessons Learned from Working-Class Jobs", "url": "https://james-carr.org/posts/the-value-of-hard-work/", "published_at": "2023-03-16T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d68e3a8cf7", "title": "πŸ‹οΈ Syncing Hevy Workouts to Notion Using Zapier", "url": "https://james-carr.org/posts/sync-hevy-to-notion-using-zapier/", "published_at": "2023-03-11T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d68e7716a6", "title": "🎧 Revolutionize Your Podcast Consumption with Snipd, Notion, and AI", "url": "https://james-carr.org/posts/revolutionize-your-podcast-consumption-with-snipd-notion-and-ai/", "published_at": "2023-03-03T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d68ed88643", "title": "Contact Me", "url": "https://james-carr.org/schedule/", "published_at": "2023-02-24T20:53:04+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d68f77baf8", "title": "James Carr", "url": "https://james-carr.org/readme/personal/", "published_at": "2023-02-24T20:53:04+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d68fe325c5", "title": "James Carr: An Operator's Guide [WIP]", "url": "https://james-carr.org/readme/manager/", "published_at": "2023-02-24T20:53:04+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d690472a67", "title": "πŸ’‘ The Power of Intentionality", "url": "https://james-carr.org/posts/the-power-of-intentionality/", "published_at": "2023-02-23T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d6910d315f", "title": "πŸ“˜ Book Review: Dynamic Reteaming", "url": "https://james-carr.org/posts/dynamic-reteaming/", "published_at": "2023-01-01T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d691ea4e5c", "title": "Strange Loop 2022 Recap", "url": "https://james-carr.org/posts/strange-loop-2022/", "published_at": "2022-10-01T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d69236ff1d", "title": "Effective Communication Best Practices", "url": "https://james-carr.org/posts/effective-communication/", "published_at": "2022-06-18T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d6933639a7", "title": "Thoughts on Managing Managers", "url": "https://james-carr.org/posts/manager-of-managers/", "published_at": "2021-12-08T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d693438164", "title": "Book Review: Turn the Ship Around", "url": "https://james-carr.org/posts/turn-the-ship-around/", "published_at": "2021-08-01T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d693dc2e2e", "title": "Measuring the Impact of Unplanned Work", "url": "https://james-carr.org/posts/unplanned-work/", "published_at": "2021-02-18T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d693e92478", "title": "Book Review: The First 90 Days", "url": "https://james-carr.org/posts/first-90-days-review/", "published_at": "2021-01-12T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d694d7d32a", "title": "My Five Favorite Management Books", "url": "https://james-carr.org/posts/five-favorite-management-books/", "published_at": "2019-12-22T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d695ad650a", "title": "152 Days of the Majjhima Nikāya", "url": "https://james-carr.org/posts/152-days-of-majjhima-nikaya/", "published_at": "2019-04-22T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d69669c5e5", "title": "Engineering Team Metrics to Drive Performance", "url": "https://james-carr.org/posts/engineering-team-metrics-to-drive-performance/", "published_at": "2017-03-03T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d696968d53", "title": "How We Run Infrastructure at Zapier", "url": "https://james-carr.org/posts/how-we-run-infrastructure-at-zapier/", "published_at": "2016-11-12T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d697214fb4", "title": "Installing Elasticsearch Plugins on Graylog2", "url": "https://james-carr.org/posts/graylog-plugins/", "published_at": "2014-06-17T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d697bb5abb", "title": "On BDD From Acceptance Tests to Story Level Specifications", "url": "https://james-carr.org/posts/on-bdd-from-acceptance-tests-to-story-level-specs/", "published_at": "2014-03-17T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d698430104", "title": "Dynamic Vagrant Nodes", "url": "https://james-carr.org/posts/dynamic-vagrant-nodes/", "published_at": "2013-03-17T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d6988b9df0", "title": "HackComo Inaugural Meetup 2/28/2012", "url": "https://james-carr.org/posts/hack-como/", "published_at": "2012-02-28T00:00:00+00:00" }, { "id": "01a0878a-3cc5-734c-a175-a0d698c4a1bc", "title": "An Epiphany About Coaching", "url": "https://james-carr.org/posts/an-epiphany-about-coaching/", "published_at": "2010-11-01T00:00:00+00:00" }, { "id": "01a0878a-3cc6-7007-b807-b32a832c8c3a", "title": "Lessons Learned With My Recent Node.js Application", "url": "https://james-carr.org/posts/lessons-learned-nodejs-strangeloop-2010/", "published_at": "2010-09-24T00:00:00+00:00" }, { "id": "01a0878a-3cc6-7007-b807-b32a83331970", "title": "Life in the Fast Lane", "url": "https://james-carr.org/posts/life-in-the-fastlane/", "published_at": "2010-07-12T00:00:00+00:00" }, { "id": "01a0878a-3cc6-7007-b807-b32a8366af3e", "title": "⭐️ Retrospective Rules", "url": "https://james-carr.org/posts/retrospective-rules/", "published_at": "2010-02-28T00:00:00+00:00" }, { "id": "01a0878a-3cc6-7007-b807-b32a84620f1c", "title": "RabbitMQ, Node.js and Java Goodness", "url": "https://james-carr.org/posts/rabbitmq-nodejs-and-java-goodness/", "published_at": "2010-02-28T00:00:00+00:00" }, { "id": "01a0878a-3cc6-7007-b807-b32a84682c4b", "title": "The Importance of Maintaining a Sustainable Pace", "url": "https://james-carr.org/posts/the-importance-of-maintaining-a-sustainable-pace/", "published_at": "2010-02-18T00:00:00+00:00" }, { "id": "01a0878a-3cc6-7007-b807-b32a84a3fd15", "title": "CoMO Twestival", "url": "https://james-carr.org/posts/twestival/", "published_at": "2009-02-15T00:00:00+00:00" }, { "id": "01a0878a-3cc6-7007-b807-b32a85265129", "title": "OSCommerce: A Lesson in Unmaintainable Code?", "url": "https://james-carr.org/posts/oscommerce/", "published_at": "2008-11-30T00:00:00+00:00" }, { "id": "01a0878a-3cc6-7007-b807-b32a856f73c8", "title": "James Carr // sprawl.sys", "url": "https://james-carr.org/posts/diagrams/adaptive-throughput-learning/", "published_at": null }, { "id": "01a0878a-3cc6-7007-b807-b32a8626287a", "title": "James Carr // sprawl.sys", "url": "https://james-carr.org/posts/diagrams/circuit-breaker/", "published_at": null }, { "id": "01a0878a-3cc6-7007-b807-b32a86635870", "title": "James Carr // sprawl.sys", "url": "https://james-carr.org/posts/diagrams/day-10-process-manager-diagrams/", "published_at": null } ] posts Claim your blog
Back to carrja99
Blog Β· corpus.blog/blogs/james-carr.org/posts

carrja99

james-carr.org

2026

2025

2024

2023

2022

2021

2019

2017

2016

2014

2013

2012

2010

2009

2008

Undated