176 likes
路
1.4K reads
8 comments
Great and generous feature
Thanks Steffan 馃檪
That was really insightful! I learned a lot. Thank you Sandro Volpicella
I wasn't able to follow all of the DynamoDB part. Mainly because I have never used it. But I got the broad idea.
It seems like a lot more work went into getting that in-progress feedback than the actual backup feature. I look forward to read how you iterate on that!
I also have a small question.
publicationID
belongs to a user or to a blog? I am guessing it is for each blog. So any user can have several publicationIDs? I am not familiar with Hashnode's API, but I have been toying around with it a little. And it seems to me that a user can only have a single publication (???) 馃槄
I am just figuring serverless out so this helps a lot!
By the way, I love the drawings :D
Thanks for your comment!
I get that the whole approach is a bit confusing or seems a lot for a simple feature like that. But this shows some complexities of an async process.
DynamoDB:
DynamoDB is mainly there for getting the connection back to the user. Since we don't have a websocket server such as socket.io we need to store the connectionId
somewhere to respond to the user. This is what DynamoDB is doing.
Feedback Yes a huge part was definitely the whole feedback loop for the enduser. This infrastructure builds the basics now because we can reuse it for other features as well.
PublicationID
A publicationId
belongs to a publication. Internally we distinguish between a user and a publication. A user can have several publications, e.g. one team publication and one private publication.
I hope that helps. Drawings are in excalidraw which is an awesome tool! 馃檪
Great article. I really enjoy reading these kinds of posts, working through the architecture of a feature that seems simple from the outside, but has its challenges internally. Thanks for sharing!
Glad to hear that!
Great feature indeed but really good to know about the whole process. On the way, got a elaborate idea about aws system.
Cool glad you've liked it! 馃檪