Тёмный

Build & Deploy a Realtime App that Scales with Upstash Redis, Next.js & Fastify 

TomDoesTech
Подписаться 29 тыс.
Просмотров 16 тыс.
50% 1

Upstash Redis: upstash.com/?
GitHub repository: github.com/TomDoesTech/chat-t...
Learn Redis: • Learn Redis in 40 Minu...
🌎 Follow me here:
Discord: / discord
Twitter: / tomdoes_tech
Facebook: / tomdoestech​
Instagram: / tomdoestech​
TikTok: / tomdoes_tech
☕ Buy me a coffee: www.buymeacoffee.com/tomn

Развлечения

Опубликовано:

 

25 авг 2023

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 77   
@VladdyHell
@VladdyHell 10 месяцев назад
I took time creating a timestamps using ChatGPT so it might not be accurate: 0:00 Introduction and video overview 2:54 Requirements before starting the tutorial 3:24 Diagramming the architecture of the chat application 19:04 Build the Fastify server 27:42 Handling WebSocket connections 29:11 Subscribing and emitting connection count updates 41:56 Handling messages and publishing to Redis 50:08 Setting up Docker and Docker Compose 58:05 Configuring Caddy for web server and load balancing 1:04:35 Building the front-end UI 1:29:17 Deploying the UI to Vercel 1:36:25 Setting up server deployment with GitHub Actions 1:46:05 Fixing deployment issues 1:50:20 Successful building and running of the application 1:52:31 Recap and conclusion
@stanleychukwu7424
@stanleychukwu7424 11 месяцев назад
the advanceness of this course might be under-rated.. this is the type of lecture that any junior to mid lever developer needs, i encourage everyone to watch this video and practice on their own like twice or thrice! wish all you youngins the best
@shawnweddle3002
@shawnweddle3002 11 месяцев назад
Wow, this video is exactly what I need for a project idea I have. I'm already in the middle of two other projects, but I'll come back to this soon. Thanks Tom!
@deathdefier45
@deathdefier45 9 месяцев назад
I have been trying to deploy sockets for over a year now with little to no luck, thank you so much for this Tom you're a hero.
@moestaxx286
@moestaxx286 11 месяцев назад
🔥🔥🔥let’s go. thank you so much i can’t wait to do this later! i’m working on a react course, and it’s 40 hrs but i’m almost done 😩. after i’m diving right into this 🤝🏾
@yiannis_p
@yiannis_p 4 месяца назад
How the hell did I miss this gem. Superb quality, as always.
@adlerspencer
@adlerspencer 11 месяцев назад
Wow, *TomDidTech* again! 🤯 This is exactly what I needed! And exactly with my techs! Always delivers clear, useful and relevant information. I appreciate your generosity, Mr. Tom! 🚀
@clipstube7691
@clipstube7691 10 месяцев назад
Wow, this tutorial is truly a masterpiece! 🌟 Your explanation of every concept was spot-on, making it incredibly easy to follow along. I've learned so much from this, especially with the integration of Node.js, Redis, Docker, Caddy, and Next.js for a real-time chat app. 'Build & Deploy a Realtime App that Scales with Upstash Redis, Next.js & Fastify' is not just a title, it's a testament to the depth and quality of content you've provided. Thank you for sharing your knowledge and expertise with us. Looking forward to more insightful content from you!
@balogunkayodefredrick9063
@balogunkayodefredrick9063 11 месяцев назад
This is nice and precise, I like the way little consideration was given to the ui and getting an actual system working.
@TomDoesTech
@TomDoesTech 11 месяцев назад
Thank you. Yeah the viewer can figure out the UI once they have a working app
@stanleychukwu7424
@stanleychukwu7424 11 месяцев назад
boss, you're a blessing to this community!! GOD bless you my bro
@Mukthar_vlogs
@Mukthar_vlogs 11 месяцев назад
REALLY LOVE YOUR VIDEOS
@IkraamDev
@IkraamDev 11 месяцев назад
Well done once again!
@wanitooo
@wanitooo 11 месяцев назад
youre my hero tom
@sicario55
@sicario55 11 месяцев назад
neat, very neat & thorough 👌
@heyjitendra
@heyjitendra 11 месяцев назад
Wow tom this is just awesome. One feedback though please increase the font size while recording. I sometimes had to struggle with that as I am doing split screen.
@kirakira160
@kirakira160 11 месяцев назад
thank you Tom ! we are waiting for golang and htmx and tailwind please🙏🙏
@DeepDrinks
@DeepDrinks 11 месяцев назад
This is amazing Daddy
@jeesan485
@jeesan485 10 месяцев назад
Hi Tom, would you be interested in making a fullstack project tutorial where user manages long running task from the frontend and able to see live status of the task. An example would be: script to go to a website and take a screenshot/collect data and when complete, frontend would show if it worked or failed etc. I was hoping you can show a good scalable architecture for this type of app. I couldn't find a good example to copy. Kinda lost when it comes to multi user triggering task in isolated context and when in shared context where its status is visible to other users.
@Luka_brx
@Luka_brx 11 месяцев назад
Tom u are Goat
@TomDoesTech
@TomDoesTech 11 месяцев назад
Yum, I love goat curry
@stanleychukwu7424
@stanleychukwu7424 11 месяцев назад
@@TomDoesTech 😂😂😂😂😂😂 wth! 🙌🙌
@andrewnguemnang2757
@andrewnguemnang2757 11 месяцев назад
Great
@tastyapplesauce1617
@tastyapplesauce1617 11 месяцев назад
Hey Tom, thanks for the tutorial. I'm stuck after getting the docker container running and getting the healthcheck route with postman. Sometimes I get status ok on port 3001, most of the time I get 502 bad gateway. Any ideas? I presume something is preventing me from connecting to the other two server instances. Cheers!
@tastyapplesauce1617
@tastyapplesauce1617 11 месяцев назад
Got it. I had a typo loading in the port environment variable in my app, so all of the instances were trying to start on the same default port
@RyvreRandom
@RyvreRandom 7 месяцев назад
I tried my best to get the server to work, but the message channel wouldn't send, closeWithGrace would never run, and the connected clients count would not reset. Thought it was my code, so copy/pasted the main.ts file, set module versions to match exactly what is in the github project and tried again. Same results. Gonna have to leave this one for now, not sure what is up, if anyone has a clue, let me know.
@mithushanjalangan5132
@mithushanjalangan5132 11 месяцев назад
Question in term of costing. When you mean scales, how does cost affect with scale if this was a production setup ?
@TomDoesTech
@TomDoesTech 11 месяцев назад
It really depends how you host it. when I say scale, I mean it will horizontally scale
@aka.theos.
@aka.theos. 7 месяцев назад
hey Tom, I found your video recently, great video btw I'm really glad I found it, but I'm wonder how is this horizontal scaling if you're running all containers on the same machine or droplet but using different ports? I'm a newbie and I'm so confused here. Is every container in a digital ocean droplet a separate machine on its own?
@TomDoesTech
@TomDoesTech 7 месяцев назад
I'm pretty sure I said in the video it's to simulate horizontal scaling. To actually deploy the app on several droplets would have been much more time consuming and not taught the core principal that I was trying to teach in the video.
@aka.theos.
@aka.theos. 7 месяцев назад
@@TomDoesTech okay thank you so much for the clarification and really good work honestly your channel is a gem
@ambujmittal6824
@ambujmittal6824 2 месяца назад
Hey Tom! I saw a video on your channel based on websockets and chat application back in 2021. Do I need to watch that as a prerequisite to this video, and if not, which video do you recommend? Thanks!
@TomDoesTech
@TomDoesTech 2 месяца назад
No you don't need to watch it, this is the better video
@ambujmittal6824
@ambujmittal6824 2 месяца назад
@@TomDoesTech Thanks for the prompt response! And keep up the amazing work! :)
@kashadesina3893
@kashadesina3893 8 месяцев назад
Hi @TomDoesTech , was there any specific reason you chose to use fastify over express. I've read "Fastify is particularly well-suited for building high-performance APIs where low latency is crucial". Just wanted to know how you weighed up your pros and cons when choosing to use fasify. Thanks in advance!
@TomDoesTech
@TomDoesTech 8 месяцев назад
Fastify is better for a few reasons. It's faster, the API is better and the plugin ecosystem is better. There is no reason I'd ever choose express over fastify
@kashadesina3893
@kashadesina3893 8 месяцев назад
Thanks for the response!
@ThomazMartinez
@ThomazMartinez 11 месяцев назад
I'm building chat app with Solidjs and Fastify and using IO but i dont use Redis, deploying on Railway App so we will see how that will scale
@TomDoesTech
@TomDoesTech 11 месяцев назад
You will be able to use this same technique but just including Redis and you will be able to scale that app horizontally
@ThomazMartinez
@ThomazMartinez 11 месяцев назад
@@TomDoesTech thank you, could you explain quickly how you done load balancer? but strange thing why does it do load balancing when its only few connections i would have assume that load balance kicks in when there is a lot of connection and current box does does not support
@TomDoesTech
@TomDoesTech 11 месяцев назад
@@ThomazMartinez I explain how the load balencing works in the video, Load balencers don't just kick in, they are always there. You can make the load balencer only talk to one instance if you like.
@yunyang6267
@yunyang6267 11 месяцев назад
Are all realtime app built by using websockets? when I go to twitter message, I don't see websockets connection in the network tab of developer tools. Are they using websockets?
@TomDoesTech
@TomDoesTech 11 месяцев назад
Yeah, either websockets or SSE but mostly websockets
@yunyang6267
@yunyang6267 11 месяцев назад
@@TomDoesTech Thank you, Do you know the reason why I refresh the twitter message page and don't see the websocket connection? Also, are these three instances using the resources of 1 machine? is it true that one droplet can handle roughly 100 concurrent users? How do you scale if it is about to reach the limit
@ritulbhatnagar1502
@ritulbhatnagar1502 5 месяцев назад
How to deploy this project on AWS using ECS service
@TomDoesTech
@TomDoesTech 5 месяцев назад
Not sure
@andrewnguemnang2757
@andrewnguemnang2757 11 месяцев назад
It is better to use express js typescript with class oder function?
@TomDoesTech
@TomDoesTech 11 месяцев назад
no
@andrewnguemnang2757
@andrewnguemnang2757 11 месяцев назад
​@@TomDoesTechwith fonction?
@TomDoesTech
@TomDoesTech 11 месяцев назад
@@andrewnguemnang2757 what?
@kashadesina3893
@kashadesina3893 8 месяцев назад
Hi @@TomDoesTech was there any specific reason you chose to use fastify over express. I've read "Fastify is particularly well-suited for building high-performance APIs where low latency is crucial". Just wanted to know how you weighed up your pros and cons when choosing to use fasify. Thanks in advance!
@heyjitendra
@heyjitendra 11 месяцев назад
at 39:30 I am triggering refresh through the vscode save but the chat:connection-count is not being set as 0
@TomDoesTech
@TomDoesTech 11 месяцев назад
What is Redis retruning?
@heyjitendra
@heyjitendra 11 месяцев назад
its returning the number which was at before the refresh@@TomDoesTech
@heyjitendra
@heyjitendra 11 месяцев назад
Like it should go down to 0 right??
@priyadarshss2118
@priyadarshss2118 9 месяцев назад
same here. Found a fix?
@ytsun7248
@ytsun7248 8 месяцев назад
Same here
@jeffkirchoff14
@jeffkirchoff14 5 месяцев назад
sir could plz create the backend in express
@TomDoesTech
@TomDoesTech 5 месяцев назад
Why would I do that?
@SuperYoda7
@SuperYoda7 10 месяцев назад
Could you show us how to implement this into a React-Native App? Would be awesome.
@TomDoesTech
@TomDoesTech 9 месяцев назад
I've never used react native, so I'm not the person to teach it
@stavroskefaleas6320
@stavroskefaleas6320 2 месяца назад
Is redis still free?
@mazwrld
@mazwrld 10 месяцев назад
Hey Tom, rebuilding this with bun 😏
@TomDoesTech
@TomDoesTech 10 месяцев назад
Bun doesn't work with Fastify yet so you will run into some issues there
@mazwrld
@mazwrld 10 месяцев назад
u should've left me fuck around and find out... just kidding i was thinking about doing it natively @@TomDoesTech
@SuperYoda7
@SuperYoda7 10 месяцев назад
Can I do this on mac?
@TomDoesTech
@TomDoesTech 10 месяцев назад
yes, of course
@SuperYoda7
@SuperYoda7 10 месяцев назад
@@TomDoesTech cool, I am new to tech but here to learn, awesome content by the way!
@SuperYoda7
@SuperYoda7 10 месяцев назад
@@TomDoesTech I will follow along and build it myself in order to learn!
@samuelcharlesbird
@samuelcharlesbird 9 месяцев назад
No one else getting the 'Property does not exist on...' Typescript error for app.on? Can't be just me...
@TomDoesTech
@TomDoesTech 9 месяцев назад
Make sure your fastify plugins are registered in the correct order and you're using the same package versions
@joseeavr
@joseeavr Месяц назад
poor keyboard 😢
Далее
Learn Just Enough Fastify to be Productive
29:47
Просмотров 19 тыс.
Штаны легионера
00:44
Просмотров 324 тыс.
Как пронести Конфеты В ТЮРЬМУ
19:16
Ouch.. 🤕
00:30
Просмотров 12 млн
Best way to learn Socket IO | complex chat app
19:52
Просмотров 90 тыс.
The Story of Next.js
12:13
Просмотров 558 тыс.
Build a RESTful API with Fastify, Prisma & TypeScript
1:21:35
Next.js Server Actions...  5 awesome things you can do
7:51
Socket.io Introduction - How to Build a Chat App
21:38
Next.js with a separate server - good idea?
22:53
Просмотров 54 тыс.
Understanding Redis Pub/Sub (Getting Started)
9:33
Просмотров 22 тыс.
Socket IO Crash Course - Learn by Doing
25:22
Просмотров 3,4 тыс.
🗿КОРОЛЬ МЬЮИНГА ИЗ ТТ
0:17
Просмотров 3,7 млн