Repository navigation
Commit fb3897f
authored
docs: rewrite article intros, polish RU edition and spread publication dates (#19)
* fix: update PyPI links to point to the correct user profile
* Refactor blog content and update AI code review article
- Updated README for image generation script to clarify output.
- Added new article "Почему ревью с ИИ нужно контролировать" (2026-09-13) to Russian blog archive and catalog.
- Removed outdated article "Почему ревью кода с ИИ не должно быть полностью автономным" (2026-09-07) from blog and catalog.
- Adjusted article counts in category index and updated links accordingly.
- Created redirect for removed article to new article.
- Updated blog index to feature the new article.
* Добавлены новые статьи в блог: "Сессии и транзакции в SQLAlchemy", "Проверка миграций Alembic в CI", "Зачем я выделяю инфраструктуру Python-сервисов в библиотеки". Обновлен индекс блога с новыми ссылками и описаниями статей.
* Обновление статьи "Таймаут — не дедлайн": изменение описания, улучшение структуры и добавление примеров использования бюджета времени в HTTP и gRPC. Обновлены скрипты практикума, исправлены таймауты и дедлайны, добавлены пояснения по работе с заголовками и бюджетом. Упрощено объяснение различий между таймаутами и дедлайнами, добавлены рекомендации по использованию библиотек deadline-budget и clientwright.
* Обновление переводов статей и улучшение формулировок
- Изменены формулировки в статьях о PgBouncer, сессиях и транзакциях в SQLAlchemy, тестировании миграций Alembic и библиотеках Bedrock Python для улучшения ясности и точности.
- Обновлены заголовки и описания в статьях для лучшего соответствия содержанию.
- Исправлены ошибки и неточности в переводах, улучшена читаемость текста.
* Обновлены переводы статей: изменены заголовки и описания для улучшения ясности и соответствия контенту. В статье о Kafka уточнены детали о сервисе доставки, а в статье о Redis изменено описание на более подходящее для интернет-магазина.
* Обновление статьи "Python-библиотека от шаблона до релиза": изменение описания на более конкретное, отражающее контекст использования библиотеки для расчета отчетных периодов. Обновление аннотации в главном индексе.
* Обновление статьи о Bedrock Python: уточнение описания инфраструктуры, улучшение примеров использования библиотек для работы с PostgreSQL и HTTP-клиентами, добавление новых разделов о проверке поведения и интеграции компонентов.
* Add warehouse stub and update blog post on AI code review oversight
- Introduced `warehouse_stub.py` to simulate controlled failure points for testing.
- Revised blog post title and content to emphasize the need for verification of AI review findings.
- Enhanced explanations and examples in the blog post to clarify the review process and potential pitfalls.
- Updated Russian translations to reflect changes in the blog post and ensure consistency in terminology.
- Added a README for the lab example to guide users through running the tests and understanding the context.
* Refactor Russian blog posts for clarity and consistency
- Improved phrasing and clarity in the article on reliable events with Outbox and Inbox patterns.
- Enhanced explanations and structure in the SQLAlchemy and PgBouncer pools article.
- Clarified transaction management and session handling in the SQLAlchemy sessions and transactions article.
- Updated testing practices for Alembic migrations in CI to reflect current standards.
- Refined the rationale for using Bedrock Python libraries, emphasizing integration and service boundaries.
* docs: rewrite article intros, polish RU edition and spread publication dates
- Open every article with context before the problem; keep cards under 180 chars
- Rewrite the Russian edition as native text (интерцепторы, база данных)
- Keep every article within 7 minutes; no em dashes
- Rename async_sessionmaker objects to session_factory in labs and articles
- Spread the 19 articles from 2026-09-06 to 2026-10-29; rename slugs, covers
and references, and redirect the four URLs already published on master
- Point the home featured art at an existing cover1 parent de28172 commit fb3897f
665 files changed
Lines changed: 23249 additions & 26286 deletions
File tree
- docs
- assets/blog
- blog
- archive
- category
- lab
- 2026-09-06-timeouts-are-not-deadlines
- 2026-09-07-aiokafka-checklist
- 2026-09-07-circuit-breakers-per-origin
- 2026-09-07-documentation-for-ai-coding-agents
- 2026-09-07-exactly-once-effects
- 2026-09-07-five-alembic-migration-tests
- migrations
- versions
- data_loss
- drift_check_expression
- head_noop_downgrade
- tests
- 2026-09-07-graceful-shutdown
- 2026-09-07-grpc-channel-identity
- 2026-09-07-grpc-interceptors-and-streams
- 2026-09-07-idempotency-across-a-chain
- 2026-09-07-idempotency-for-jobs-and-consumers
- 2026-09-07-idempotency-keys
- 2026-09-07-kafka-consumer-shutdown
- 2026-09-07-lifecycle-not-fastapi
- 2026-09-07-migrating-from-pg-partman
- 2026-09-07-one-lifecycle
- 2026-09-07-partition-existing-table
- 2026-09-07-partition-retention
- 2026-09-07-pgbouncer-async-sqlalchemy
- 2026-09-07-production-grpc-server
- 2026-09-07-python-exceptions-to-grpc-status-codes
- 2026-09-07-redis-health-checks
- 2026-09-07-reliability-is-not-retry-3
- 2026-09-07-retry-after-backoff-jitter
- 2026-09-07-retry-budget
- 2026-09-07-safe-grpc-retries
- 2026-09-07-sqlalchemy-pool-metrics
- 2026-09-07-stop-passing-asyncsession-everywhere
- 2026-09-07-topics-on-startup
- 2026-09-07-transactional-inbox
- 2026-09-07-transport-independent-errors
- 2026-09-07-twelve-libraries-one-standard
- 2026-09-07-unit-of-work-sqlalchemy-2
- 2026-09-07-uuidv7-partition-key
- 2026-09-07-warmup-readiness-liveness
- 2026-09-07-what-every-microservice-reimplements
- 2026-09-07-when-kafka-is-down
- 2026-09-07-when-should-redis-fail-open
- 2026-09-07-why-i-stopped-wrapping-http-clients
- 2026-09-07-zero-dependency-cores
- 2026-09-13-ai-code-review-should-not-be-fully-autonomous
- posts
- 2026-05-15-transactional-outbox-with-omni-box
- 2026-05-28-introducing-mr-review
- 2026-05-30-welcome
- 2026-09-06-pg-partsmith
- 2026-09-07-ai-code-review-should-not-be-fully-autonomous
- 2026-09-07-circuit-breakers-should-be-per-origin
- 2026-09-07-documentation-for-ai-coding-agents
- 2026-09-07-exactly-once-effects
- 2026-09-07-five-alembic-migration-tests
- 2026-09-07-graceful-kafka-consumer-shutdown
- 2026-09-07-graceful-shutdown-is-a-protocol
- 2026-09-07-grpc-channels-pooled-by-identity
- 2026-09-07-how-i-start-a-production-grade-python-library
- 2026-09-07-how-to-partition-an-existing-postgresql-table
- 2026-09-07-idempotency-across-a-chain-of-microservices
- 2026-09-07-idempotency-for-jobs-and-consumers
- 2026-09-07-idempotency-keys-the-part-everyone-gets-wrong
- 2026-09-07-mapping-python-exceptions-to-grpc-status-codes
- 2026-09-07-migrating-from-pg-partman
- 2026-09-07-one-lifecycle-for-http-grpc-workers-and-cron
- 2026-09-07-partition-retention-is-not-drop-table
- 2026-09-07-pgbouncer-transaction-mode-async-sqlalchemy
- 2026-09-07-publishing-to-pypi-without-api-tokens
- 2026-09-07-redis-health-checks-ping-is-not-the-whole-story
- 2026-09-07-reliability-is-not-retry-3
- 2026-09-07-retries-can-make-an-outage-worse
- 2026-09-07-retry-after-backoff-and-jitter
- 2026-09-07-safe-grpc-retries
- 2026-09-07-should-your-application-create-kafka-topics-on-startup
- 2026-09-07-stop-passing-asyncsession-everywhere
- 2026-09-07-testing-migrations-with-testcontainers
- 2026-09-07-the-anatomy-of-a-production-grpc-server
- 2026-09-07-the-production-checklist-for-aiokafka
- 2026-09-07-transactional-inbox
- 2026-09-07-transport-independent-errors
- 2026-09-07-twelve-libraries-one-standard
- 2026-09-07-unit-of-work-in-sqlalchemy-2
- 2026-09-07-uuidv7-as-a-postgresql-partition-key
- 2026-09-07-warmup-readiness-and-liveness-are-three-different-things
- 2026-09-07-what-every-microservice-reimplements
- 2026-09-07-what-happens-when-kafka-is-down-for-an-hour
- 2026-09-07-what-to-monitor-in-a-sqlalchemy-connection-pool
- 2026-09-07-when-should-redis-fail-open
- 2026-09-07-why-application-lifecycle-should-not-belong-to-fastapi
- 2026-09-07-why-grpc-interceptors-break-on-streaming-rpcs
- 2026-09-07-why-i-stopped-wrapping-http-clients
- 2026-09-07-your-models-and-your-schema-have-drifted
- 2026-09-07-zero-dependency-cores
- stylesheets
- illustrations
- overrides/partials
- plans
- scripts
- tests
- translations/ru
- blog
- archive
- category
- lab
- 2026-09-06-timeouts-are-not-deadlines
- 2026-09-07-aiokafka-checklist
- 2026-09-07-circuit-breakers-per-origin
- 2026-09-07-documentation-for-ai-coding-agents
- 2026-09-07-exactly-once-effects
- 2026-09-07-five-alembic-migration-tests
- 2026-09-07-graceful-shutdown
- 2026-09-07-grpc-channel-identity
- 2026-09-07-grpc-interceptors-and-streams
- 2026-09-07-idempotency-across-a-chain
- 2026-09-07-idempotency-for-jobs-and-consumers
- 2026-09-07-idempotency-keys
- 2026-09-07-kafka-consumer-shutdown
- 2026-09-07-lifecycle-not-fastapi
- 2026-09-07-migrating-from-pg-partman
- 2026-09-07-one-lifecycle
- 2026-09-07-partition-existing-table
- 2026-09-07-partition-retention
- 2026-09-07-pgbouncer-async-sqlalchemy
- 2026-09-07-production-grpc-server
- 2026-09-07-python-exceptions-to-grpc-status-codes
- 2026-09-07-redis-health-checks
- 2026-09-07-reliability-is-not-retry-3
- 2026-09-07-retry-after-backoff-jitter
- 2026-09-07-retry-budget
- 2026-09-07-safe-grpc-retries
- 2026-09-07-sqlalchemy-pool-metrics
- 2026-09-07-stop-passing-asyncsession-everywhere
- 2026-09-07-topics-on-startup
- 2026-09-07-transactional-inbox
- 2026-09-07-transport-independent-errors
- 2026-09-07-twelve-libraries-one-standard
- 2026-09-07-unit-of-work-sqlalchemy-2
- 2026-09-07-uuidv7-partition-key
- 2026-09-07-warmup-readiness-liveness
- 2026-09-07-what-every-microservice-reimplements
- 2026-09-07-when-kafka-is-down
- 2026-09-07-when-should-redis-fail-open
- 2026-09-07-why-i-stopped-wrapping-http-clients
- 2026-09-07-zero-dependency-cores
- 2026-09-13-ai-code-review-should-not-be-fully-autonomous
- posts
- 2026-05-15-transactional-outbox-with-omni-box
- 2026-05-28-introducing-mr-review
- 2026-05-30-welcome
- 2026-09-06-pg-partsmith
- 2026-09-07-ai-code-review-should-not-be-fully-autonomous
- 2026-09-07-circuit-breakers-should-be-per-origin
- 2026-09-07-documentation-for-ai-coding-agents
- 2026-09-07-exactly-once-effects
- 2026-09-07-five-alembic-migration-tests
- 2026-09-07-graceful-kafka-consumer-shutdown
- 2026-09-07-graceful-shutdown-is-a-protocol
- 2026-09-07-grpc-channels-pooled-by-identity
- 2026-09-07-how-i-start-a-production-grade-python-library
- 2026-09-07-how-to-partition-an-existing-postgresql-table
- 2026-09-07-idempotency-across-a-chain-of-microservices
- 2026-09-07-idempotency-for-jobs-and-consumers
- 2026-09-07-idempotency-keys-the-part-everyone-gets-wrong
- 2026-09-07-mapping-python-exceptions-to-grpc-status-codes
- 2026-09-07-migrating-from-pg-partman
- 2026-09-07-one-lifecycle-for-http-grpc-workers-and-cron
- 2026-09-07-partition-retention-is-not-drop-table
- 2026-09-07-pgbouncer-transaction-mode-async-sqlalchemy
- 2026-09-07-publishing-to-pypi-without-api-tokens
- 2026-09-07-redis-health-checks-ping-is-not-the-whole-story
- 2026-09-07-reliability-is-not-retry-3
- 2026-09-07-retries-can-make-an-outage-worse
- 2026-09-07-retry-after-backoff-and-jitter
- 2026-09-07-safe-grpc-retries
- 2026-09-07-should-your-application-create-kafka-topics-on-startup
- 2026-09-07-stop-passing-asyncsession-everywhere
- 2026-09-07-testing-migrations-with-testcontainers
- 2026-09-07-the-anatomy-of-a-production-grpc-server
- 2026-09-07-the-production-checklist-for-aiokafka
- 2026-09-07-transactional-inbox
- 2026-09-07-transport-independent-errors
- 2026-09-07-twelve-libraries-one-standard
- 2026-09-07-unit-of-work-in-sqlalchemy-2
- 2026-09-07-uuidv7-as-a-postgresql-partition-key
- 2026-09-07-warmup-readiness-and-liveness-are-three-different-things
- 2026-09-07-what-every-microservice-reimplements
- 2026-09-07-what-happens-when-kafka-is-down-for-an-hour
- 2026-09-07-what-to-monitor-in-a-sqlalchemy-connection-pool
- 2026-09-07-when-should-redis-fail-open
- 2026-09-07-why-application-lifecycle-should-not-belong-to-fastapi
- 2026-09-07-why-grpc-interceptors-break-on-streaming-rpcs
- 2026-09-07-why-i-stopped-wrapping-http-clients
- 2026-09-07-your-models-and-your-schema-have-drifted
- 2026-09-07-zero-dependency-cores
- libraries
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
0 commit comments