Differences between Async and Multithreading programming models: Async is based on Non-Blocking execution of tasks, while multithreading is about concurrent executions of different tasks. Async can be done with single threaded environment as well as multi threaded environment. So in a nutshell multithreading is one form of Async programming. Example is Node Js being a single threaded runtime environment can handle async programming. Way to achieve async functionality is, have a function, call the slow executing task and pass a callback function to it (that should be called after the task execution). and let the control come back just after calling the async function and then execute the next set of instruction or call. While to achieve multithreading is to have multiple threads working on different sets of tasks. These are just a few differences that we can see on an initial look. I focused on simplest and shortest differences that I could feel, needed to be highlighted. there's t...
ElasticSearch : is a distributed Restful search and analytics Engine, which is used to provide Enterprise search, Observability and Security all under with the same stack. It gives Availability and Partition tolerance of CAP theorem and Consistency can be achieved with multiple tricks. The elastic stack ELK is : Elastic Search Integrations(Log stash) Kibana (UI dashboard to visualise and manage the data) Elastic search is based on Lucene Library (open source) which is written in JAVA. The data can be stored anywhere, private or public or hybrid cloud. The elastic search uses sharding(primary and replica shards for documents), Index and run as multiple instances(Nodes) as a cluster to provide HA and Partition tolerance. The search queries in elastic search can be easy once as well as complicated. To create a quick index: PUT /bookdb_index { "settings": { "number_of_shards": 1 }} A quick example of a simple JSON query is : GET /bookdb_index/book/_search?q=guide ...