the missing link you have been searching for —
Roadmap to becoming a web developer in 2019
Systme desgin primer by donne martin
System Desgin Interview Question cont..
Recommedation and personalisation
Distributed Systems in One Lesson by Tim Berglund
Interview Question - geekForgeek
Interview Question - DonneMartin
Interview Question - simple programmer
Interview Question - hackernoon
Data Structures and Algorithms in Java
How To Not Be Stumped By Trees
Vaidehi Joshi’s world of Datastructure
When to use linkedlist over arraylist in java
How to define service industries
Capability-mapping-and-context-mapping
Caching Tutorial for Web Authors and Webmasters
https://www.youtube.com/watch?v=otWst36CKyM
Definitive guide for website authentication
Safari Books - Learn design pattern
Safari Books - Break away system
Safari books - Java Inteview Guide
10 JAVA interview question Java Interview question
Microsoft Dcouments on API-Design best practice
5 Tips for System Design Interviews
System Design: How to design Twitter? Interview question at Facebook, Google, Microsoft
JWT | OAuth |
---|---|
its a token, JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties | its a framework to dispense token |
JWT is a different kind of OAuth token | OAuth token is not the only token |
is not a pointer to information | a pointer to information |
JWT contains real information, it can be large | can be small as its just a pointer |
JWT are self-validating” what they mean is, any holder of the JWT can open it, validate it, and then make authorization decisions based on the claims presented in it. | Oauth are not |
JWT supports “Federation” - anyone can generate a token, and anyone can read and validate a token . | used when there is no federation |
used when asynchrony is required | |
security. Both are bearer tokens. Both need to be protected as secrets. | same |
useful for self authenticating tokens | |
has lot more context about the user, session - including the signature. | less context |
better at performance as no server call requried | server clal required |
forced to have lower expiry times to these tokens, as they are valid till the pre-defined rules re valid |
Container | VM |
---|---|
Shares the OS and resources | A full virtualized system gets its own set of resources allocated to it, and does minimal sharing. |
If you just want to isolate processes from each other and want to run a ton of them on a reasonably sized host, then Docker/LXC/runC seems to be the way to go. | If you want full isolation with guaranteed resources, a full VM is the way to go |
How containers works at low level? Each container runs in its own namespace but uses exactly the same kernel as all other containers. The isolation happens because kernel knows the namespace that was assigned to the process and during API calls it makes sure that process can only access resources in its own namespace. | How virtualization works at low level? The net effect is that virtualization allows you to run two completely different OS on same hardware. Each guest OS goes through all the process of bootstrapping, loading kernel etc. You can have very tight security, for example, guest OS can’t get full access to host OS or other guests and mess things up. |
A virtual machine is a convenient way of packaging up virtual hardware, a kernel, and a user space. | A container, on the other hand, packages up only the user space; there is no kernel or virtual hardware. |
Sharing an entire virtual machine with other developers can be inconvenient because of a virtual machine’s size and format | Containers have the advantage of providing developers, architects, quality engineering, release engineers, and systems administrators with a currency for collaboration that has the entire user space packaged and shipped in a convenient and easy to use format. |
https://www.infoq.com/articles/cap-twelve-years-later-how-the-rules-have-changed
https://stackoverflow.com/questions/10558465/memcached-vs-redis
https://www.youtube.com/watch?v=9T-gNZ5bGCw
Here are possible drawbacks:
1) Polling intervals have to be set correctly. Too long makes the system is inefficient. Too short makes the database undergo heavy read load. 2) Read and write operation heavy DB. Usually, they are good at one of the two. 3) Manual delete procedures to be written to remove read messages. 4) Scaling is difficult conceptually and physically.
These are just pointer where you can get some more details about particular topic, but almost all of them required working knowledge for a deep dive and more thoughts on using the same.
All the best for your next round :)
Manas