372 likes
·
8.3K reads
34 comments
Wow. Thank you for this information, I get to see real-life architecture. A lot of stuff went over my head. I find it interesting that it is possible to interact with Vercel API to assign custom domains. That's something on my list.
Quick question, I was expecting to see anything about using a cron job, but didn't so does it mean Hashnode don't use it? Or is it part of the background process?
Yes Vercel is really amazing on that side. I don't think many people realize this.
This is all in the section of asnyc processes TBH I try to use as little cron jobs as possible and try to react to events. Thats much easier to trace and to understand IMO. But not always possible of course
Sandro Volpicella Okay Thanks
What about hasnode app?
The app runs on react-native and uses the REST API + GQL API.
Maybe Shad Mirza or Florian Fuchs can elaborate
Sandro Volpicella was it expo on Expo. There's a reason I am asking.
We are running on Expo with development clients to integrate some native code modules, which are unavailable on Expo Go.
As Sandro Volpicella already said, the App uses a mixture of GQL and the REST API for data fetching.
Do you want to know anything else about the App?
Florian Fuchs thank you for the reply. What modules could that be? I am just curious
For example:
- react-native-music-control
We did have a couple more in the beginning, but most of the packages are now available on Expo Go 👍
Florian Fuchs thanks you for the quick replies.
Really cool. Appreciate the look-see
Cool glad to hear that :)
Your language is very simple and easy to understand, thank you
Thanks really appreciate it! 😊
Very cool post! May I ask what tool you used for the diagrams?
Sure. I am using excalidraw.com
cảm ơn
This was an amazing read, how real life architecture is implemented. Thanks
Glad you like it. Thanks! :)
Great article! Can you elaborate more on how you document event types, producers and consumers to make the overall architecture scalable, discoverable and maintainable?
Thanks!
- event types: We have an own package in our monorepo where we defined all event types and ZOD schemas
- consumers: We follow the EventBridge subscription pattern. Each consumer owns the rule. So we don't really document something here. Each consumer can decide which ones to use
- producers: The main producer is our GQL API. We have abstracted event emitters for actions like post publish, update, etc.
A great explanation in a concise and structured format. Though many things went over my head, I will surely look upon them to make them clear. Great Writing! ✍️ 👌.
Thanks! Let me know if you have any questions of what went over your head. I recorded a podcast episode on that as well which comes out in a month or so :)
Sandro Volpicella Oh nice, will surely listen to the podcast. Actually I'm a beginner, I have to learn new stuff, if I face any difficulties then will definitely tell you.
woa that is so interesting to see the real-life architecture.
Thanks! Happy to hear that :)
Great stuff! Thank you for sharing.
nice
Would really love it if you could explain the event-driven architecture and the services used to make it possible in a separate article.
Nice article btw
Great stuff. Easily understandable. Can you also share how hashnode built the Rix?
Nice app
Sandro VolpicellaAmazing read!
thank you very much