java-tutorials/lagom
Eric Martin 3225470df5 Merge pull request #8125 from eugenp/revert-8119-BAEL-3275-2
Revert "BAEL-3275: Using blocking queue for pub-sub"
2019-10-31 20:43:47 -05:00
..
greeting-api/src/main Merge pull request #8125 from eugenp/revert-8119-BAEL-3275-2 2019-10-31 20:43:47 -05:00
greeting-impl Merge pull request #8125 from eugenp/revert-8119-BAEL-3275-2 2019-10-31 20:43:47 -05:00
project Merge pull request #8125 from eugenp/revert-8119-BAEL-3275-2 2019-10-31 20:43:47 -05:00
weather-api/src/main Merge pull request #8125 from eugenp/revert-8119-BAEL-3275-2 2019-10-31 20:43:47 -05:00
weather-impl Merge pull request #8125 from eugenp/revert-8119-BAEL-3275-2 2019-10-31 20:43:47 -05:00
.gitignore Merge pull request #8125 from eugenp/revert-8119-BAEL-3275-2 2019-10-31 20:43:47 -05:00
README.md Merge pull request #8125 from eugenp/revert-8119-BAEL-3275-2 2019-10-31 20:43:47 -05:00
build.sbt Merge pull request #8125 from eugenp/revert-8119-BAEL-3275-2 2019-10-31 20:43:47 -05:00

README.md

Lagom

This module contains articles about the Lagom framework.

Relevant articles

Steps to setup from scratch

  1. Create sbt build file "build.sbt"

  2. Create plugins file project/plugins.sbt

  3. Create build properties file project/build.properties

  4. Run sbt command from project root to generate project directories, generated projects at target/lagom-dynamic-projects Service Locator project: lagom-internal-meta-project-service-locator cassandra project: lagom-internal-meta-project-cassandra

  5. Create folders in all projects to follow maven like directory structure layout for project source code: src/main/java and src/main/java/resources and test folders.

  6. Weather microservice a) WeatherService Interface with method: weatherStatsForToday() b) WeatherServiceImpl to return weatherstats from a random list of weather stats

  7. Greeting Microservice GreetingService Interface: handleGreetFrom(String user)

    a) Reply back to user with greeting message("Hello") along with weather stats fetched from weather microservice b) Update the greeting message("Hello Again") for an existing user.

  8. GreetingEntity: PersistentEntity<GreetingCommand, GreetingEvent, GreetingState> a) handles ReceivedGreetingCommand b) Stores ReceivedGreetingEvent events to cassandra c) Processes ReceivedGreetingEvent to update GreetingState("Hello" to "Hello Again") if required.

  9. Register modules with lagom using application.conf files.

  10. Run project: sbt lagom:runAll

Sample Run:

$ curl http://localhost:9000/api/greeting/Nikhil;
Hello Nikhil! Today's weather stats: Going to be very humid, Take Water

$ curl http://localhost:9000/api/greeting/Nikhil;
Hello Again Nikhil! Today's weather stats: Going to Rain, Take Umbrella