caching is the process of storing data temporarily. a cache generally lives for a relatively small amount of time. examples: browser cache, DNS caching etc.
* save bandwidth (and reuse resources)
when using cache mechanism in client-side applications, it ensures that cached files won't be downloaded again from the server.
* save processing power
when writing algorithms, it could be optimized using a caching mechanism...
2/n
...caching would help add memorization to that algorithm, enabling it NOT to repeat the same calculations again and again.
* save time
we all visit websites mostly by domain names(and rarely using the IP address). having cached DNS records would let the resolver use...
3/n
... the previous lookup results and save us some time.
So, caching has so many advantages. should we use it for everything? Nope! that's a bad idea.
trade-offs: 👇
4/n
* disk space
storing data needs some sort of space on the user's device. caching won't make sense if we dump everything in the user's device.
* stale resources (old resources)
whatever data has been cached, may not be the latest copy.
5/n
* complexity
depending on where you are using a cache mechanism, it may not be straightforward.
(in context to the web) what type of resources should be cached?
it highly depends on the developer to decide what to cache and what not to. for instance, static files...
...which does not change frequently, are good to be cached. another example: in a chat app, old chats can be cached.
basically, anything that reduces server-load without affecting user experience badly, can be cached :)
• • •
Missing some Tweet in this thread? You can try to
force a refresh
it is a type of attack performed on web apps in order to carry out a malicious action without user's explicit consent.
these 'malicious actions' could be anything. for example: changing email address, personal information etc
Note to Self: MongoDB can be used with serverless functions by caching the initial connection.
database engines were designed much before the serverless architecture was a thing.
a connection to the database is always persistent. meaning, it lasts for a really long time.
also, there is a limit(imposed by DBaaS provider) on how many connections a database can have at any given timestamp.
a lambda function is invoked every time a client(generally, browsers) creates a connection. this means a new connection to the database as well.