Application would send request to one of the node(called as coordinating node) & this coordinating node is aware of where your result lies(considering you have modelled your DB correctly, it should not result in scatter& gather kind of stuff) and thus delegate the query to respective node, so it does follow client server architecture & your assumption is correct. As per my knowledge , generally application should be unaware where your result lies & must not be tied to a specific node because it would have bigger implications when stuffs like re-balancing would occur. So, your application should be unaware where your data lies (in which node I meant), but obviously keeping application in same region as that of cassandra cluster would make sense, can't comment much on cloud deployment.
Thanks, Rajesh On Sat, Jan 12, 2019 at 8:54 AM amit sehas <cu...@yahoo.com.invalid> wrote: > I am new to Cassandra, i am wondering how the Cassandra applications are > deployed in the cloud. Does Cassandra have a client server architecture and > the application is deployed as a 3rd tier that sends over queries to the > clients, which then submit them to the Cassandra servers? Or does the > application submit the request directly to any of the Cassandra server > which then decides where the query will be routed to, and then gathers the > response and returns that to the application. > > Does the application accessing the data get deployed on the same nodes in > the cloud as the Cassandra cluster itself? Or on separate nodes? Are there > any best practices available in this regard? > > thanks >