Let’s say we want to add a full-text search engine to you application. Apache solr is a open source and popular choice for search engines. Now, I am going to share a simple architecture to synchronize data between the primary data-store (like mysql, mongodb, etc) and solr engine.
Yes, these are not the same terms, and I would say they are quite different in modern software architecture. It’s very frequent to see asynchronous and non-blocking terms are used interchangeably. Especially, when creating a thread to do some background task and letting the calling thread to continue without waiting for the new asynchronous thread.
But non-blocking now has a very deep meaning, better be said as “how much blocking our applications are”.