Recently, I discover Nats, thanks to Delaney, and I cannot stop thinking about it:
Possible problems and accidental complexty:
- Microservices & REST API: communicating via REST API, we are coupling the services together
-
- Nats is like Kafka, REST API, AWS S3 and Redis all combined in one
- REST API calls couple the server and the client together. A clients needs to know about the servers. With Nats request-reply pattern, a client publishes a message and the server responds.
- Nats can store large objects, so it can serve as an AWS S3 storage.
- Single interface.
Q&A:
- Which clients called a server?
- Set retention of the messaged, and now you have complete overview of all requests/responses
- Tracing/Correlaction ids:
- ???
Caveats:
-