Reading Time: 2 minutes

So this would be new set blog post and my videos on LetsDoCoding. In this particular post we shall be discussing shortly a very simplistic and bare minimum Solution Design for URL Expander and Shortner Service, very similar to Bit.Ly. I have asked this question in quite a few Interviews I have taken in the Initial interview rounds and this post covers all the aspects.

  • Cloud based solution design.
  • Deployment Strategy and replication for better UX
  • Services and Contracts Design
  • Database and ER Model Design.

You can refer the video on youtube for complete details, but we shall be discussing some pointers in this post. This question is targeted for interview questions and discussions on system and solution design. So Lets Begin…

High Level Requirements

So lets start with the requirements. The interviewer provides following set of requirements

  • Simple URL Shortener Service
  • Admins be able to disable any URLs.
  • Metrics of URL accessed be stored with basic client Details.
  • System should use any backend and any JS based design. Focus on BE.
  • Compliance / Violations can be submitted by any user.
  • System should be based on cloud.
  • System Should be scalable with min Latency.
  • System should provide observability.
  • Take appropriate assumptions.
  • Preferentially AWS should be chosen as cloud platform.

Solution Design

The solution proposed is very simple and minimal but covers all the aspects required for the requirements mentioned.

Services and Contract Design

DB and ER Model

With an experience of more then 12 yrs in IT, Author is currently working as an Architect in Cloud and Microservices and helps organizations leverage to full potential in the Cloud Revolution. Author has worked across different domains such as Defense, Oil and Gas, Casinos, MedTech etc. In the part time, author loves to play Warcraft & AOE, write blogs and learn new things.

One Reply to “URL Shortner / Expander Solution Design”

Leave a Reply

Your email address will not be published. Required fields are marked *