Lagom doesn't provide any solution, plugin or feature that enables API versioning. However you can use the following to decide and pick what works best for you:
When versioning you must keep in mind both the service endpoints and payloads and the topics and events.
If your new versions are breaking changes you will need to expose the new endpoints on a separate namespace. To do that you have few choices:
MyService or MyServiceV2. You would have two deployment units (MyService and MyService2) but only one of them would store data or emit events over a broker.-api project . This will be easier to deploy but will create confusion on the service implementation and especially will leak the version complexity on your clients as they all will see both versions of the API. Note how the first two options implied publishing completely separate -api for each version.This is quite similar but this time your new schema is a separate topic on your broker.
Lagom does not support implementing two Service into a single deployment unit which is why in the above examples the only way to keep your -api separate is creating separate deployment units.
Finally, there's an edge case that needs highlighted: if your changes only happen on the payload of your ServiceCalls (the paths remain the same and the topic and events also remain the same) you could try to use tuned MessageSerializers. You could have a Message serializer with rich content negotiation so that clients may decide on the Accepted: request header what format they are sending and expect as a response (e.g.application/vnd.myapplication.user.v1+json)