I am looking for a comprehensive example to properly configure a Lagom application running in production and using docker-compose for deployment (even if I read that using a container orchestrator is preferable).
I don’t think there’s any such example btu it’d be great if you share your discoveries.
There is some discussions and hints on internet but nothing seems successful. Should I use a third party software like zookeeper, consul, etc or Akka Clustering can do the job ?
I think this question is mixing two different concerns:
on one hand you will need zoookeper, consul or some other external tool to act as service registry. SoA orchestrators are defaulting to DNS-SRV records. In a nutshell, you need to be able to locate where an instance of a particular service is running (both IP and port). You need this location capabilities to find a database, but also to find an instance of a downstream service or even instances of the same service as yourself so you can join them and form cluster.
Akka Cluster is used intra-service. Meaning, if your application is composed of 10 lagom services, you will be running 10 separate Akka clusters. Each of the services may up/down-scale independently. Then, the communication between services will never be using Akka clustering mechanisms. It is important to note that cross-service communication is always via external comms (e.g. HTTP or brokers like Kafka)