LuckyTruck case study

Delivering the LuckyTruck platform on AWS

The LuckyTruck work extended from customer interfaces to cloud delivery. Our team worked across containerized services, serverless functions, relational and key-value data, document storage and the deployment workflows that connected them on AWS.

Selected work by our team during its LuckyTruck engineering tenure, 2021–2024. The case describes that contribution; LuckyTruck’s current product has continued to evolve.

Several workloads, one product

The product combined interactive customer and operations screens with carrier integrations, document processing and scheduled or asynchronous work. Those tasks have different execution needs. The archive reflects both long-running container services and focused Lambda functions rather than a single deployment shape for everything.

This overview names the technologies and responsibility boundaries from that work. It is not a reproduction of the client’s private network topology or a description of its current production estate.

AWS services and their roles

AWS services and their roles
LayerTechnologiesRole in the work
Container deliveryDocker, Amazon ECR, Amazon ECSPackage services, publish images and run container workloads.
Focused functionsAWS Lambda, API Gateway, Serverless FrameworkExpose and deploy discrete integration and document-processing functions.
Relational dataPostgreSQL on Amazon RDS, PrismaRepresent related product records through a relational database and application data layer.
Key-value dataAmazon DynamoDBSupport service-specific data and integration state.
Documents and objectsAmazon S3Store and exchange files used by document and product workflows.
CommunicationAmazon SESSupport application email workflows.
Delivery automationGitHub Actions, Docker build/push workflowsConnect code changes with repeatable container publishing and release steps.

Application engineering around the cloud

React and Next.js powered customer and operations interfaces. Node.js and Express services used GraphQL, Apollo and Prisma in different generations of the backend. PostgreSQL modeled related application records; specialist integrations also used DynamoDB and AWS SDKs.

The stack evolved over the engagement. Salesforce integrations used jsforce and Apex; Zoho integrations used its SDK and embedded-app APIs. Browser automation supported selected carrier journeys, while Java handled the GlobalSign signing service. This variety reflected the systems the product had to connect, rather than a requirement to use every technology in a new build.

Delivery responsibilities beyond application code

Our contribution included deployment configuration, container workflows and serverless packaging alongside product code. The retained repositories include separate environment configurations, Docker definitions, GitHub Actions workflows and Serverless Framework definitions.

For a new engagement, we agree on environment ownership, secrets handling, database changes, monitoring, rollback and support before launch. Those are acceptance questions for a production handover, not optional details after the interface is finished.

What this experience brings to a new product

A product studio should be able to explain how an interface reaches its data and integrations, how a failed background job is handled, and who can deploy or recover the application. Our LuckyTruck work demonstrates experience spanning those layers.

The appropriate first release may be much smaller. We scope the workflow and its operational requirements first, then choose the minimum infrastructure needed to support it. AWS experience is useful judgment; reproducing a large historical stack is not a goal in itself.

Continue exploring

Discuss your workflow

Rubix Labs

A few finishing touches.