Synthetic application and event processing

Synthetic application and event processing An architecture diagram generated by Archify. api-gateway · Python / HTTP :8080 · Architecture component api-gateway Python / HTTP :8080 order-service · Python / HTTP :8080 · Architecture component order-service Python / HTTP :8080 payment-service · Python / Rollout :8080 · Architecture component payment-service Python / Rollout :8080 Aurora PostgreSQL · order/payment + transactional outbox · Architecture component Aurora PostgreSQL order/payment + transactional outbox SNS event topic · publish after DB commit · Architecture component SNS event topic publish after DB commit Notification SQS · separate queue + DLQ · Architecture component Notification SQS separate queue + DLQ Analytics SQS · separate queue + DLQ · Architecture component Analytics SQS separate queue + DLQ notification · dedup / synthetic result · Architecture component notification dedup / synthetic result analytics · independent dedup/result · Architecture component analytics independent dedup/result POST/GET orders POST payments SQL + outbox SQL + outbox fanout fanout consume consume publisher retries outbox Legend Frontend Backend Database Message bus

Exact semantics

  • • Order and outbox share one DB transaction
  • • SNS publication and DB mark are not atomic

Synthetic effects

  • • Each consumer deduplicates event IDs
  • • No real card payment, email or SMS