[{"data":1,"prerenderedAt":36},["ShallowReactive",2],{"craft-restaurant-invoices-cdk":3},{"id":4,"slug":5,"sourceId":5,"title":6,"subtitle":7,"description":8,"github":9,"technologies":10,"features":21,"lastModified":28,"imagesPath":29,"imagesFolder":30,"imagesCount":31,"images":32,"imageType":9,"note":34,"showLinks":9,"githubLabel":9,"links":9,"previewSource":33,"previewMediaType":35},4,"restaurant-invoices-cdk","Serverless Invoice Pipeline","Serverless AWS event-driven pipeline generating and delivering automated monthly invoices.","Serverless, event-driven invoice delivery system built entirely from scratch on AWS. Automates the monthly generation and delivery of thousands of restaurant invoice emails - triggering from ETL completion, fetching invoices from a REST API, generating React-based PDF documents, and delivering templated emails via Postmark.",null,[11,12,13,14,15,16,17,18,19,20],"AWS CDK","TypeScript","AWS Lambda","SQS","EventBridge","Secrets Manager","Node.js","React","Postmark","CloudWatch",[22,23,24,25,26,27],"Designed and built the complete 3-Lambda event-driven pipeline from scratch: ETL completion event → dynamic EventBridge schedule creation → SQS batch dispatch → PDF generation + templated email delivery.","Dynamic EventBridge Scheduler creation at runtime - each ETL cycle programmatically creates a one-shot 1st-of-month schedule that self-deletes after execution, eliminating persistent cron configuration and over-triggering risk.","Invoice PDF generation using @react-pdf\u002Frenderer - React-component-based invoice document with multi-section payment breakdowns (Domestic, International, Wallet, Prior Adjustments) per provider (Stripe\u002FAdyen), rendered server-side to base64.","SQS-based batch fanout - paginated invoice fetch from REST API batched into SQS (10\u002Fbatch), processed 5 at a time per Lambda invocation with dead-letter queue, retry policy, and per-message batch failure reporting.","Production-grade CDK stack: VPC-isolated Lambdas, Secrets Manager for all API credentials, CloudWatch error and throttle alarms wired to Slack SNS notifications, and per-environment resource namespacing across QA, staging, and production.","Postmark templated email delivery with PDF attachment - base64-encoded invoice attached per message, secrets fetched at runtime from Secrets Manager, with multi-environment secret path conventions and fallback env var support.","2026-06-06","\u002Fimages\u002Fprojects-overview\u002F","\u002Fimages\u002Fprojects\u002Frestaurant-invoices-cdk\u002F",1,[33],"https:\u002F\u002Fd2908q01vomqb2.cloudfront.net\u002Fc5b76da3e608d34edb07244cd9b875ee86906328\u002F2025\u002F12\u002F19\u002FPicture7-3.png","Production infrastructure diagrams are kept confidential. The image above is an illustrative reference sourced from [AWS Architecture Blog](https:\u002F\u002Faws.amazon.com\u002Fblogs\u002Findustries\u002Fbeyond-webhooks-event-driven-payment-architectures-with-amazon-eventbridge\u002F) (© Amazon Web Services).","image",1783149732148]