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
What about hasnode app?
Really cool. Appreciate the look-see
Your language is very simple and easy to understand, thank you
Very cool post! May I ask what tool you used for the diagrams?
This was an amazing read, how real life architecture is implemented. 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?
- 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! ✍️ 👌.
woa that is so interesting to see the real-life architecture.
Great stuff! Thank you for sharing.
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?
thank you very much