[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"academy-blogs-en-7-12-Cutting-Edge%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252520Tech-all-all-createdAt:desc-default":3},{"data":4,"page":486,"perPage":487,"totalItems":488,"totalPages":489},[5,80,113,167,196,233,281,300,336,375,412,449],{"alt":6,"cover_image_path":7,"created":8,"expand":9,"id":76,"published_at":77,"school_blog":72,"short_description":78,"title":6,"updated":79,"slug":73,"views":75},"JS2GO EP.45 Transaction Management and ACID in Go vs JavaScript","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fx60iotab0jqcpuv\u002Fcover_image_js2_go_ep_ec6lauzbdq.GoandJavaScript.webp","2026-03-04 08:45:08.065Z",{"keywords":10,"locale":44,"school_blog":54},[11,19,24,29,34,39],{"collectionId":12,"collectionName":13,"created":14,"created_by":15,"id":16,"name":17,"updated":18,"updated_by":15},"sclkey987654321","school_keywords","2026-03-04 08:45:07.399Z","","72jmv19z0d4abka","Transactions","2026-04-10 16:12:54.403Z",{"collectionId":12,"collectionName":13,"created":20,"created_by":15,"id":21,"name":22,"updated":23,"updated_by":15},"2026-03-04 08:20:42.484Z","vslzz9nvv6n77cx","JavaScript","2026-04-10 16:07:28.339Z",{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},"2026-03-04 08:45:07.600Z","k7yaeiuxv1skqiy","ACID","2026-04-10 16:12:54.568Z",{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},"2026-03-04 08:20:14.253Z","ah6lvy4x8qe08l5","Golang","2026-04-10 16:07:26.172Z",{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},"2026-03-04 08:20:11.547Z","ey3puyme01a9bsw","Go","2026-04-10 16:07:25.893Z",{"collectionId":12,"collectionName":13,"created":40,"created_by":15,"id":41,"name":42,"updated":43,"updated_by":15},"2026-03-04 08:24:40.405Z","05u3tysava2z6ga","Node.js","2026-04-10 16:07:29.504Z",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},"en","pbc_1989393366","locales","2026-01-22 11:00:02.726Z","twemoji:flag-united-states","qv9c1llfov2d88z",false,"English","2026-04-10 15:42:46.825Z",{"category":55,"collectionId":56,"collectionName":57,"created":15,"expand":58,"id":72,"slug":73,"updated":74,"views":75},"hsa1afr8fcnd6qb","pbc_2105096300","school_blogs",{"category":59},{"blogIds":60,"collectionId":61,"collectionName":62,"created":63,"created_by":15,"id":55,"image":64,"image_alt":15,"image_path":65,"label":66,"name":67,"priority":68,"publish_at":69,"scheduled_at":15,"status":70,"updated":71,"updated_by":15},[],"sclcatblg987654321","school_category_blogs","2026-03-04 08:24:37.986Z","js2_go_2_11zon_y6paxmuz32.webp","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Fhsa1afr8fcnd6qb\u002Fjs2_go_2_11zon_y6paxmuz32.webp",{"en":67,"th":67},"JS2GO",10,"2025-08-11 03:41:08.820Z","published","2026-04-25 02:32:14.339Z","9jnytcr0hvauwo4","js2go-ep45-transaction-acid-go-vs-javascript-en","2026-05-20 11:54:45.261Z",209,"x60iotab0jqcpuv","2025-12-08 07:52:17.469Z","A complete guide to SQL transactions, ACID properties, deadlock handling, isolation levels, and production-ready transaction patterns in Go (pgx\u002FGORM) and Node.js (pg).","2026-05-08 06:52:03.969Z",{"alt":81,"cover_image_path":82,"created":83,"expand":84,"id":109,"published_at":110,"school_blog":105,"short_description":111,"title":81,"updated":112,"slug":106,"views":108},"JS2GO EP.44 Connecting to SQL & NoSQL Databases in JavaScript and Go","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fa453fw2y5q5b2pk\u002Fcover_image_js2_go_ep_exnf66oywo.nJavaScriptvsGo.webp","2026-03-04 08:45:09.769Z",{"keywords":85,"locale":99,"school_blog":100},[86,91,92,93,94],{"collectionId":12,"collectionName":13,"created":87,"created_by":15,"id":88,"name":89,"updated":90,"updated_by":15},"2026-03-04 08:45:08.210Z","kf4t7456pu8udiy","Database Connection","2026-04-10 16:12:54.691Z",{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},{"collectionId":12,"collectionName":13,"created":20,"created_by":15,"id":21,"name":22,"updated":23,"updated_by":15},{"collectionId":12,"collectionName":13,"created":40,"created_by":15,"id":41,"name":42,"updated":43,"updated_by":15},{"collectionId":12,"collectionName":13,"created":95,"created_by":15,"id":96,"name":97,"updated":98,"updated_by":15},"2026-03-04 08:45:08.439Z","wscthqnz8vx2sox","PostgreSQL","2026-04-10 16:12:54.755Z",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":55,"collectionId":56,"collectionName":57,"created":15,"expand":101,"id":105,"slug":106,"updated":107,"views":108},{"category":102},{"blogIds":103,"collectionId":61,"collectionName":62,"created":63,"created_by":15,"id":55,"image":64,"image_alt":15,"image_path":65,"label":104,"name":67,"priority":68,"publish_at":69,"scheduled_at":15,"status":70,"updated":71,"updated_by":15},[],{"en":67,"th":67},"80o1aimylbrt97t","js2go-ep44-database-connection-sql-nosql-javascript-go","2026-05-17 07:26:59.231Z",220,"a453fw2y5q5b2pk","2025-12-08 07:51:58.249Z","A complete guide to connecting PostgreSQL, MySQL, MongoDB, and Redis using JavaScript and Go. Includes production-ready examples, ORM\u002FQuery Builder recommendations, connection pooling, timeouts, and best practices for building stable backend systems.","2026-05-08 06:52:04.539Z",{"alt":114,"cover_image_path":115,"created":116,"expand":117,"id":163,"published_at":164,"school_blog":159,"short_description":165,"title":114,"updated":166,"slug":160,"views":162},"EP.114 Managing Multi-device & Multi-session in WebSocket Systems","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fvtvj7f7xktls88l\u002Fcover_image_managing_multi_device_multi_session_in_web_socket_systems_kp81pkol6c.webp","2026-03-04 08:45:13.010Z",{"keywords":118,"locale":145,"school_blog":146},[119,124,125,130,135,140],{"collectionId":12,"collectionName":13,"created":120,"created_by":15,"id":121,"name":122,"updated":123,"updated_by":15},"2026-03-04 08:45:10.982Z","dqqa1njvmvzgknq","Real-time Application","2026-04-10 16:12:55.322Z",{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},{"collectionId":12,"collectionName":13,"created":126,"created_by":15,"id":127,"name":128,"updated":129,"updated_by":15},"2026-03-04 08:45:11.216Z","4pcpc8j9lxwki40","Multi-session","2026-04-10 16:12:55.409Z",{"collectionId":12,"collectionName":13,"created":131,"created_by":15,"id":132,"name":133,"updated":134,"updated_by":15},"2026-03-04 08:45:11.536Z","dam2zlrgu9l1qrd","Multi-device","2026-04-10 16:12:55.519Z",{"collectionId":12,"collectionName":13,"created":136,"created_by":15,"id":137,"name":138,"updated":139,"updated_by":15},"2026-03-04 08:44:48.724Z","s6xhnfomy7n5ycp","WebSocket Server","2026-04-10 16:12:50.171Z",{"collectionId":12,"collectionName":13,"created":141,"created_by":15,"id":142,"name":143,"updated":144,"updated_by":15},"2026-03-04 08:34:00.920Z","ecac9y661or1xka","WebSocket","2026-04-10 16:08:05.227Z",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":147,"collectionId":56,"collectionName":57,"created":15,"expand":148,"id":159,"slug":160,"updated":161,"views":162},"wqxt7ag2gn7xcmk",{"category":149},{"blogIds":150,"collectionId":61,"collectionName":62,"created":151,"created_by":15,"id":147,"image":152,"image_alt":15,"image_path":153,"label":154,"name":155,"priority":156,"publish_at":157,"scheduled_at":15,"status":70,"updated":158,"updated_by":15},[],"2026-03-04 08:33:53.210Z","59ty92ns80w_15oc1implw.png","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Fwqxt7ag2gn7xcmk\u002F59ty92ns80w_15oc1implw.png",{"en":155,"th":155},"Golang The Series",1,"2026-03-16 04:39:38.440Z","2026-04-25 02:32:15.470Z","gfvirj7858src70","ep114-managing-multi-device-multi-session-websocket","2026-05-21 09:25:42.765Z",219,"vtvj7f7xktls88l","2025-12-08 02:14:19.907Z","Learn how to design a WebSocket system that supports multiple devices per user with stable sessions, real-time synchronization, secure token management, and production-ready patterns complete with Go code examples.","2026-05-08 06:52:05.993Z",{"alt":168,"cover_image_path":169,"created":170,"expand":171,"id":192,"published_at":193,"school_blog":188,"short_description":194,"title":168,"updated":195,"slug":189,"views":191},"EP.115 Advanced Multiplayer Game System with WebSocket in Golang","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fh649cc9nv0yi2g3\u002Fcover_ep_qqytsvgzf9.bSocketinGolang.webp","2026-03-04 08:45:10.250Z",{"keywords":172,"locale":182,"school_blog":183},[173,178,179,180,181],{"collectionId":12,"collectionName":13,"created":174,"created_by":15,"id":175,"name":176,"updated":177,"updated_by":15},"2026-03-04 08:45:09.425Z","75vnd9vtdgbgcsr","Multiplayer Game","2026-04-10 16:12:54.941Z",{"collectionId":12,"collectionName":13,"created":136,"created_by":15,"id":137,"name":138,"updated":139,"updated_by":15},{"collectionId":12,"collectionName":13,"created":141,"created_by":15,"id":142,"name":143,"updated":144,"updated_by":15},{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":147,"collectionId":56,"collectionName":57,"created":15,"expand":184,"id":188,"slug":189,"updated":190,"views":191},{"category":185},{"blogIds":186,"collectionId":61,"collectionName":62,"created":151,"created_by":15,"id":147,"image":152,"image_alt":15,"image_path":153,"label":187,"name":155,"priority":156,"publish_at":157,"scheduled_at":15,"status":70,"updated":158,"updated_by":15},[],{"en":155,"th":155},"y19urzocch6zb6c","ep115-advanced-websocket-multiplayer-game","2026-05-19 13:30:53.603Z",215,"h649cc9nv0yi2g3","2025-12-08 02:14:00.997Z","Learn how to build a production-ready real-time multiplayer game system using Go and WebSocket—from player state sync and position updates to game events, room architecture, latency optimization, and scalable backend design.","2026-05-08 06:52:04.869Z",{"alt":197,"cover_image_path":198,"created":199,"expand":200,"id":229,"published_at":230,"school_blog":225,"short_description":231,"title":197,"updated":232,"slug":226,"views":228},"JS2GO EP.43 Rate Limiting and Throttling in Go and Node.js","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fn1ttpsetag4uno1\u002Fcover_image_js2_go_rate_limiting_and_throttling_in_go_and_node_7qytbnribo.js.webp","2026-03-04 08:45:14.874Z",{"keywords":201,"locale":219,"school_blog":220},[202,207,212,213,218],{"collectionId":12,"collectionName":13,"created":203,"created_by":15,"id":204,"name":205,"updated":206,"updated_by":15},"2026-03-04 08:34:07.915Z","921nl48h9in67sw","Rate Limiting","2026-04-10 16:08:07.808Z",{"collectionId":12,"collectionName":13,"created":208,"created_by":15,"id":209,"name":210,"updated":211,"updated_by":15},"2026-03-04 08:45:14.634Z","k64fy7g22x7ash7","Throttling","2026-04-10 16:12:56.314Z",{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},{"collectionId":12,"collectionName":13,"created":214,"created_by":15,"id":215,"name":216,"updated":217,"updated_by":15},"2026-03-04 08:44:38.026Z","m3dqo2zalnfaoof","Token Bucket","2026-04-10 16:12:47.845Z",{"collectionId":12,"collectionName":13,"created":40,"created_by":15,"id":41,"name":42,"updated":43,"updated_by":15},{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":55,"collectionId":56,"collectionName":57,"created":15,"expand":221,"id":225,"slug":226,"updated":227,"views":228},{"category":222},{"blogIds":223,"collectionId":61,"collectionName":62,"created":63,"created_by":15,"id":55,"image":64,"image_alt":15,"image_path":65,"label":224,"name":67,"priority":68,"publish_at":69,"scheduled_at":15,"status":70,"updated":71,"updated_by":15},[],{"en":67,"th":67},"wwe3lx7mcx6mdo4","js2go-ep43-rate-limiting-throttling-go-nodejs-en","2026-05-12 16:21:00.311Z",205,"n1ttpsetag4uno1","2025-12-03 14:28:21.708Z","Learn how to protect your API from overload using Rate Limiting and Throttling techniques such as Token Bucket, Leaky Bucket, and Sliding Window, with real production-ready examples in Go and Node.js.","2026-05-08 06:52:06.658Z",{"alt":234,"cover_image_path":235,"created":236,"expand":237,"id":277,"published_at":278,"school_blog":273,"short_description":279,"title":234,"updated":280,"slug":274,"views":276},"You Might Be Wasting Time Reading Code… If You Haven’t Tried Code Wiki Yet","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fi24uzar53oy55ps\u002Fwhat_is_code_wiki_google_s_tool_that_helps_developers_7cqois7f6k.webp","2026-03-04 08:45:17.396Z",{"keywords":238,"locale":259,"school_blog":260},[239,244,249,254],{"collectionId":12,"collectionName":13,"created":240,"created_by":15,"id":241,"name":242,"updated":243,"updated_by":15},"2026-03-04 08:45:16.585Z","h61ztnkgd0y3ooz","developer tools","2026-04-10 16:12:56.507Z",{"collectionId":12,"collectionName":13,"created":245,"created_by":15,"id":246,"name":247,"updated":248,"updated_by":15},"2026-03-04 08:20:15.564Z","9zhk20p0247axym","Google","2026-04-10 16:07:26.313Z",{"collectionId":12,"collectionName":13,"created":250,"created_by":15,"id":251,"name":252,"updated":253,"updated_by":15},"2026-03-04 08:45:16.903Z","fc3dajgzvy2vdec","google code wiki","2026-04-10 16:12:56.602Z",{"collectionId":12,"collectionName":13,"created":255,"created_by":15,"id":256,"name":257,"updated":258,"updated_by":15},"2026-03-04 08:45:17.133Z","71gsmylmonz3ikx","code wiki","2026-04-10 16:12:56.757Z",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":261,"collectionId":56,"collectionName":57,"created":15,"expand":262,"id":273,"slug":274,"updated":275,"views":276},"jwhmeg2uxwz0bkp",{"category":263},{"blogIds":264,"collectionId":61,"collectionName":62,"created":265,"created_by":15,"id":261,"image":266,"image_alt":15,"image_path":267,"label":268,"name":269,"priority":270,"publish_at":271,"scheduled_at":15,"status":70,"updated":272,"updated_by":15},[],"2026-03-04 08:31:40.635Z","1qt33a4n2u3_lr23qy62xh.png","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Fjwhmeg2uxwz0bkp\u002F1qt33a4n2u3_lr23qy62xh.png",{"en":269,"th":269},"Tools & Resources",0,"2025-01-31 09:55:27.001Z","2026-04-25 02:32:14.689Z","gado4zcess7ysg9","code-wiki-save-time-reading-code","2026-05-18 18:44:42.460Z",321,"i24uzar53oy55ps","2025-12-02 03:40:11.574Z","Code Wiki is Google’s new tool that automatically generates and updates code documentation directly from your repository. It helps developers understand complex codebases faster, reduces onboarding time.","2026-05-08 06:52:07.530Z",{"alt":282,"cover_image_path":283,"created":284,"expand":285,"id":296,"published_at":297,"school_blog":292,"short_description":298,"title":282,"updated":299,"slug":293,"views":295},"JS2GO EP.42 Goroutine Pools and Worker Pools in Go and JavaScript","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Ftjx4r389f9w9evy\u002Fcover_image_js2_go_ep_vcn3pjcxkm.GoandJavaScript.webp","2026-03-04 08:45:15.696Z",{"locale":286,"school_blog":287},{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":55,"collectionId":56,"collectionName":57,"created":15,"expand":288,"id":292,"slug":293,"updated":294,"views":295},{"category":289},{"blogIds":290,"collectionId":61,"collectionName":62,"created":63,"created_by":15,"id":55,"image":64,"image_alt":15,"image_path":65,"label":291,"name":67,"priority":68,"publish_at":69,"scheduled_at":15,"status":70,"updated":71,"updated_by":15},[],{"en":67,"th":67},"r6iur8d051yqk9e","js2go-ep42-goroutine-pool-worker-pool-go-vs-javascript-en","2026-05-14 06:51:33.522Z",207,"tjx4r389f9w9evy","2025-12-02 03:39:28.149Z","Learn how to control concurrent tasks using Goroutine Pools and Worker Pools to prevent resource leaks and scale systems to handle tens of thousands of requests per second. Includes real code examples in both Go and JavaScript.","2026-05-08 06:52:07.016Z",{"alt":301,"cover_image_path":302,"created":303,"expand":304,"id":332,"published_at":333,"school_blog":328,"short_description":334,"title":301,"updated":335,"slug":329,"views":331},"EP.113 Building an Advanced Multi-room Chat System with Go and WebSocket","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fh6wvekawibs30q7\u002Fcover_image_ep_i4139690tb.hatSystemwithGo.webp","2026-03-04 08:45:12.781Z",{"keywords":305,"locale":322,"school_blog":323},[306,310,315,320,321],{"collectionId":12,"collectionName":13,"created":307,"created_by":15,"id":308,"name":155,"updated":309,"updated_by":15},"2026-03-04 08:44:51.471Z","hlato0hav8vo8wm","2026-04-10 16:12:50.850Z",{"collectionId":12,"collectionName":13,"created":311,"created_by":15,"id":312,"name":313,"updated":314,"updated_by":15},"2026-03-04 08:45:12.082Z","d1gcnwwosqk2zn0","redis pubsub","2026-04-10 16:12:55.686Z",{"collectionId":12,"collectionName":13,"created":316,"created_by":15,"id":317,"name":318,"updated":319,"updated_by":15},"2026-03-04 08:45:12.418Z","vbx3b3qn50sn0tr","Multi-room Chat","2026-04-10 16:12:55.814Z",{"collectionId":12,"collectionName":13,"created":141,"created_by":15,"id":142,"name":143,"updated":144,"updated_by":15},{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":147,"collectionId":56,"collectionName":57,"created":15,"expand":324,"id":328,"slug":329,"updated":330,"views":331},{"category":325},{"blogIds":326,"collectionId":61,"collectionName":62,"created":151,"created_by":15,"id":147,"image":152,"image_alt":15,"image_path":153,"label":327,"name":155,"priority":156,"publish_at":157,"scheduled_at":15,"status":70,"updated":158,"updated_by":15},[],{"en":155,"th":155},"c5vhepb3pkr5tot","go-advanced-multiroom-chat-system","2026-05-14 18:05:15.155Z",235,"h6wvekawibs30q7","2025-12-02 03:38:44.862Z","Learn how to build a scalable real-time chat system that supports multiple rooms, with message broadcasting and Redis Pub\u002FSub integration to handle multi-instance production environments.","2026-05-08 06:52:05.818Z",{"alt":337,"cover_image_path":338,"created":339,"expand":340,"id":371,"published_at":372,"school_blog":367,"short_description":373,"title":337,"updated":374,"slug":368,"views":370},"EP.112 Building a Real-time Notification System with Go & WebSocket","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fa6ourecyykz4qu1\u002Fcover_image_ep_55tj9y0hok.ionSystemwithGo.webp","2026-03-04 08:45:14.833Z",{"keywords":341,"locale":361,"school_blog":362},[342,347,352,353,354,359,360],{"collectionId":12,"collectionName":13,"created":343,"created_by":15,"id":344,"name":345,"updated":346,"updated_by":15},"2026-03-04 08:45:13.578Z","qwq1kseajvv4cne","notification system","2026-04-10 16:12:55.954Z",{"collectionId":12,"collectionName":13,"created":348,"created_by":15,"id":349,"name":350,"updated":351,"updated_by":15},"2026-03-04 08:34:10.254Z","rss87kgvhtvkri1","Redis Pub\u002FSub","2026-04-10 16:08:08.714Z",{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},{"collectionId":12,"collectionName":13,"created":355,"created_by":15,"id":356,"name":357,"updated":358,"updated_by":15},"2026-03-04 08:45:13.969Z","pyniezbvfdbyuyc","real-time notifications","2026-04-10 16:12:56.096Z",{"collectionId":12,"collectionName":13,"created":136,"created_by":15,"id":137,"name":138,"updated":139,"updated_by":15},{"collectionId":12,"collectionName":13,"created":141,"created_by":15,"id":142,"name":143,"updated":144,"updated_by":15},{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":147,"collectionId":56,"collectionName":57,"created":15,"expand":363,"id":367,"slug":368,"updated":369,"views":370},{"category":364},{"blogIds":365,"collectionId":61,"collectionName":62,"created":151,"created_by":15,"id":147,"image":152,"image_alt":15,"image_path":153,"label":366,"name":155,"priority":156,"publish_at":157,"scheduled_at":15,"status":70,"updated":158,"updated_by":15},[],{"en":155,"th":155},"jkppmte5754r6vv","real-time-notification-system-websocket-ep112","2026-05-16 23:36:48.245Z",217,"a6ourecyykz4qu1","2025-12-01 04:20:10.633Z","Learn how to build a real-time notification system using Go and WebSocket, with Redis Pub\u002FSub for scaling across multiple instances ensuring users receive instant alerts for important events.","2026-05-08 06:52:06.551Z",{"alt":376,"cover_image_path":377,"created":378,"expand":379,"id":408,"published_at":409,"school_blog":404,"short_description":410,"title":376,"updated":411,"slug":405,"views":407},"JS2GO EP.41 Advanced Concurrency Patterns in Go and JavaScript","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fdf6ufzdlyyjjl6a\u002Fcover_image_js2_go_advanced_concurrency_patterns_in_go_and_java_script_0ve1z3sih3.webp","2026-03-04 08:45:19.312Z",{"keywords":380,"locale":398,"school_blog":399},[381,386,391,392,393],{"collectionId":12,"collectionName":13,"created":382,"created_by":15,"id":383,"name":384,"updated":385,"updated_by":15},"2026-03-04 08:34:34.471Z","wdd8fb47sbrmq28","Worker Pool","2026-04-10 16:08:17.741Z",{"collectionId":12,"collectionName":13,"created":387,"created_by":15,"id":388,"name":389,"updated":390,"updated_by":15},"2026-03-04 08:24:48.143Z","dourw0uuydrrh1h","Concurrency","2026-04-10 16:07:30.157Z",{"collectionId":12,"collectionName":13,"created":20,"created_by":15,"id":21,"name":22,"updated":23,"updated_by":15},{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},{"collectionId":12,"collectionName":13,"created":394,"created_by":15,"id":395,"name":396,"updated":397,"updated_by":15},"2026-03-04 08:45:18.214Z","teavruxi3wptjg2","Fan-in Fan-out","2026-04-10 16:12:56.820Z",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":55,"collectionId":56,"collectionName":57,"created":15,"expand":400,"id":404,"slug":405,"updated":406,"views":407},{"category":401},{"blogIds":402,"collectionId":61,"collectionName":62,"created":63,"created_by":15,"id":55,"image":64,"image_alt":15,"image_path":65,"label":403,"name":67,"priority":68,"publish_at":69,"scheduled_at":15,"status":70,"updated":71,"updated_by":15},[],{"en":67,"th":67},"p1xr7iwf0bs1tu8","js2go-ep41-advanced-concurrency-patterns-go-javascript","2026-05-14 17:39:37.199Z",212,"df6ufzdlyyjjl6a","2025-11-25 09:53:40.248Z","Explore Worker Pool, Fan-in\u002FFan-out, Rate Limiter, and Pipeline Optimization in Go and JavaScript with real-world examples and Production-ready patterns.","2026-05-08 06:52:08.270Z",{"alt":413,"cover_image_path":414,"created":415,"expand":416,"id":445,"published_at":446,"school_blog":441,"short_description":447,"title":413,"updated":448,"slug":442,"views":444},"JS2GO EP.40 Optimizing Code Performance: Go vs JavaScript Which One Is Faster?","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fss3ngbr8mnt0iap\u002Fcover_image_for_js2_go_ep_o7fxl8l3cv.eGovsJavaScript.webp","2026-03-04 08:45:19.836Z",{"keywords":417,"locale":435,"school_blog":436},[418,419,420,425,430],{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},{"collectionId":12,"collectionName":13,"created":20,"created_by":15,"id":21,"name":22,"updated":23,"updated_by":15},{"collectionId":12,"collectionName":13,"created":421,"created_by":15,"id":422,"name":423,"updated":424,"updated_by":15},"2026-03-04 08:45:19.280Z","2zphwe6a9vls84d","Benchmark","2026-04-10 16:12:56.915Z",{"collectionId":12,"collectionName":13,"created":426,"created_by":15,"id":427,"name":428,"updated":429,"updated_by":15},"2026-03-04 08:44:11.932Z","8sanh9jytfatsgk","Performance Optimization","2026-04-10 16:12:41.404Z",{"collectionId":12,"collectionName":13,"created":431,"created_by":15,"id":432,"name":433,"updated":434,"updated_by":15},"2026-03-04 08:45:19.588Z","jiiqle4ur9lyqjr","Garbage Collection","2026-04-10 16:12:57.067Z",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":55,"collectionId":56,"collectionName":57,"created":15,"expand":437,"id":441,"slug":442,"updated":443,"views":444},{"category":438},{"blogIds":439,"collectionId":61,"collectionName":62,"created":63,"created_by":15,"id":55,"image":64,"image_alt":15,"image_path":65,"label":440,"name":67,"priority":68,"publish_at":69,"scheduled_at":15,"status":70,"updated":71,"updated_by":15},[],{"en":67,"th":67},"8h85kk8v4b23tuz","js2go-ep40-optimize-performance-go-vs-javascript-en","2026-05-17 17:31:01.932Z",216,"ss3ngbr8mnt0iap","2025-11-25 09:45:42.235Z","Discover how to optimize performance in Go and JavaScript using techniques like garbage collection tuning, memory profiling, parallel execution, and benchmarking. Learn which language performs best in real-world scenarios.","2026-05-08 06:52:08.716Z",{"alt":450,"cover_image_path":451,"created":452,"expand":453,"id":482,"published_at":483,"school_blog":478,"short_description":484,"title":450,"updated":485,"slug":479,"views":481},"EP.111 Message Ordering & Event Sequence Management for WebSocket Systems","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fpdf1phavdygzc5h\u002Fcover_image_for_golang_the_series_ep_bsy777cn0x.uenceManagement.webp","2026-03-04 08:45:20.819Z",{"keywords":454,"locale":472,"school_blog":473},[455,456,461,466,471],{"collectionId":12,"collectionName":13,"created":141,"created_by":15,"id":142,"name":143,"updated":144,"updated_by":15},{"collectionId":12,"collectionName":13,"created":457,"created_by":15,"id":458,"name":459,"updated":460,"updated_by":15},"2026-03-04 08:45:20.175Z","qt9i7rqnfh0kczq","Message Ordering","2026-04-10 16:12:57.376Z",{"collectionId":12,"collectionName":13,"created":462,"created_by":15,"id":463,"name":464,"updated":465,"updated_by":15},"2026-03-04 08:45:20.573Z","v392y0yjhdt1ttt","Event Sequence","2026-04-10 16:12:57.528Z",{"collectionId":12,"collectionName":13,"created":467,"created_by":15,"id":468,"name":469,"updated":470,"updated_by":15},"2026-03-04 08:45:10.623Z","2zhfdpu8sy1xeju","Golang WebSocket","2026-04-10 16:12:55.126Z",{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":147,"collectionId":56,"collectionName":57,"created":15,"expand":474,"id":478,"slug":479,"updated":480,"views":481},{"category":475},{"blogIds":476,"collectionId":61,"collectionName":62,"created":151,"created_by":15,"id":147,"image":152,"image_alt":15,"image_path":153,"label":477,"name":155,"priority":156,"publish_at":157,"scheduled_at":15,"status":70,"updated":158,"updated_by":15},[],{"en":155,"th":155},"5pylgez4390k6e5","ep111-message-ordering-event-sequence-en","2026-05-20 19:33:37.658Z",210,"pdf1phavdygzc5h","2025-11-24 09:41:17.654Z","High-concurrency WebSocket systems often face out-of-order messages. This episode covers Sequence ID design, ordered broadcasting, Redis Pub\u002FSub synchronization, and recovery mechanisms to ensure 100% correct message ordering.","2026-05-08 06:52:09.902Z",7,12,410,35]