Amit3200 / SE-Designs-Understanding

Contains various design strategies with the implementation of them on a small level with an example. This repo helps us to understand how and why one should implement various designs while creating applications.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SE-Designs-Understanding

maintained by [amit3200](https://github.com/Amit3200)

Contains various design strategies with the implementation of them on a small level with an example. This repo helps us to understand how and why one should implement various designs while creating applications.

Projects

urlShortner

rateLimiter

logger

case_study

distributedTrie

urlShortner

  • Mimics the case of an url shortner. Uses 2 queues where the shortened url are generated and kept as some request comes it is consumed and is allocated to the allocated queue which says that shortened url is used.

rateLimiter

  • This allows to rate limit a particular api request.

logger

  • Logger is used to log the application uses the sequencing accordingly. Uses heap to map the requests.

case_study

  • rabbit_mq application upload asynchronously and notify user about upload using rabbit mq

Distributed Trie v1 (Shard by Region)

  • This was just a try and mimic program for the simulation in run time memory.
  • How the things work. What are the assumptions?
  • So we aim to build the trie which is distributed. Now the distribution can be done on the basis of multiple things.For the ease of things we willl keep it simple and will distribute the trie as per the region. So this means every region will have different trie node. The data between them are mutually exclusive to each other.
  • Code for Distributed Trie v1 at Link to Distributed Trie v1
  • Refer to diagram below Alt text

Feel free to reach me out and give suggestions on the same.

Connect at amit3200

About

Contains various design strategies with the implementation of them on a small level with an example. This repo helps us to understand how and why one should implement various designs while creating applications.

License:GNU General Public License v3.0


Languages

Language:Python 64.4%Language:Java 19.0%Language:C++ 11.3%Language:HTML 4.0%Language:Ruby 1.0%Language:CSS 0.3%