[{"data":1,"prerenderedAt":123},["ShallowReactive",2],{"work-index":3},[4],{"id":5,"title":6,"body":7,"coverImage":97,"description":13,"extension":98,"focusPoints":99,"images":103,"meta":106,"navigation":107,"path":108,"roleSummary":109,"seo":110,"stack":111,"stem":119,"summary":120,"year":121,"__hash__":122},"work\u002Fwork\u002Fquestlist.md","Questlist",{"type":8,"value":9,"toc":90},"minimark",[10,14,17,22,25,54,58,72,76],[11,12,13],"p",{},"Starting a video game discovery and review platform without tying it to an existing digital storefront comes with a unique scaling challenge. Infrastructure costs must remain low during early launch, but the architecture cannot compromise on future growth. The quickest wat to lose a newly acquired user base is performance degradation right as adoption spikes.",[11,15,16],{},"The goal was to build a responsive, high-throughput solution that operates within early budget constraints while growing alongside expanding user traffic, feature demands, and catalog growth.",[18,19,21],"h2",{"id":20},"architectural-strategy","Architectural Strategy",[11,23,24],{},"To keep the platform responsive and scalable in individual segments, we decoupled the application into distinct bounded contexts using Domain-Driven Design principles:",[26,27,28,36,42,48],"ul",{},[29,30,31,35],"li",{},[32,33,34],"strong",{},"Games Context:"," Developed a service that manages game metadata, developers, and publishers. Built for read-heavy access with slow, steady write cycles.",[29,37,38,41],{},[32,39,40],{},"Collections Context:"," Built a service that handles the creation, sorting, and curation of user game lists asynchronously, ensuring heavy user activity never blocks core catalog operations.",[29,43,44,47],{},[32,45,46],{},"Feed Context:"," Designed to generate dynamic home feeds using tailored read models, completely eliminating expensive live joins across subsystems.",[29,49,50,53],{},[32,51,52],{},"Unified GraphQL Edge Layer:"," Placed a unified GraphQL layer over the underlying bounded contexts, allowing the Nuxt frontend to query stitched data across Games, Collections, and Feeds in a single, tailored request without over-fetching.",[18,55,57],{"id":56},"engineering-highlights","Engineering Highlights",[26,59,60,66],{},[29,61,62,65],{},[32,63,64],{},"Containerized Service Isolation:"," Encapsulated each bounded context and backing service (RabbitMQ, ElasticSearch, PostgreSQL) into isolated containers, allowing resource-heavy components like search indexing to scale independently while keeping baseline infrastructure costs low.",[29,67,68,71],{},[32,69,70],{},"Sub-50ms Search:"," Implemented an event-driven CQRS pipeline using RabbitMQ and ElasticSearch to sync catalog mutations into a dedicated search index, maintaining sub-50ms query responses.",[18,73,75],{"id":74},"outcomes-technical-impact","Outcomes & Technical Impact",[26,77,78,84],{},[29,79,80,83],{},[32,81,82],{},"Ultra-Low Latency:"," Achieved sub-50ms average search latency for game queries across 300,000+ titles.",[29,85,86,89],{},[32,87,88],{},"Resilient Ingestion Pipeline:"," Built an automated ingestion worker capable of processing 20,000+ games per year without disrupting user traffic.",{"title":91,"searchDepth":92,"depth":92,"links":93},"",2,[94,95,96],{"id":20,"depth":92,"text":21},{"id":56,"depth":92,"text":57},{"id":74,"depth":92,"text":75},"\u002Fwork\u002Fquestlist\u002Fquestlist_logo.png","md",[100,101,102],"Domain-Driven Design","Command Query Responsibility Segregation","High-Throughput Catalog Search",[104,105],"\u002Fwork\u002Fquestlist\u002Fquestlist_mobile_render.png","\u002Fwork\u002Fquestlist\u002Fquestlist_ratings_render.png",{},true,"\u002Fwork\u002Fquestlist","Consultation, Platform Architecture, and Development",{"title":6,"description":13},[112,113,114,115,116,117,118],"Nuxt","Vue","GraphQL",".NET","PostgreSQL","RabbitMQ","Elasticsearch","work\u002Fquestlist","Scalable, High-Performance Game Discovery & Reviews",2026,"ZA_q7v-gALenkZw_Ndm5sT2IBAlKFe8KzUlaBGer-bk",1789751506168]