| # Saga Camel K examples |
| |
| This example is from [camel-saga-quickstart](https://github.com/nicolaferraro/camel-saga-quickstart/) adapted to work with camel-k. |
| |
| Make sure Camel K is installed in your namespace, or execute the following command to install it: |
| |
| ``` |
| kamel install |
| ``` |
| |
| * Start the lra-coordinator by using the `oc` or `kubectl` tool: |
| ``` |
| kubectl apply -f lra-coordinator.yaml |
| ``` |
| |
| * Start the three demo services |
| ``` |
| kamel run -d camel:lra Payment.java |
| kamel run -d camel:lra Flight.java |
| kamel run -d camel:lra Train.java |
| ``` |
| |
| * Start the saga application |
| ``` |
| kamel run -d camel:lra -d camel:direct Saga.java |
| ``` |
| |
| Then you can use ```kamel logs saga``` to check the output of the transactions. |
| |
| Focusing on one of the services, e.g. the flight service, you will notice that when unexpected events are found, |
| the operation is subsequently cancelled, e.g.: |
| |
| E.g. running: |
| ``` |
| kamel logs flight |
| ``` |
| |
| Possible workflow: |
| ``` |
| flight-7c8df48b88-6pzwt integration 2020-03-02 10:56:30.148 INFO [default-workqueue-2] route2 - Buying flight #18 |
| flight-7c8df48b88-6pzwt integration 2020-03-02 10:56:30.165 ERROR [XNIO-1 I/O-1] DefaultErrorHandler - Failed delivery for (MessageId: ID-flight-7c8df48b88-6pzwt-1583146351094-0-106 on ExchangeId: ID-flight-7c8df48b88-6pzwt-1583146351094-0-105). Exhausted after delivery attempt: 1 caught: org.apache.camel.http.common.HttpOperationFailedException: HTTP operation failed invoking http://payment/api/pay?bridgeEndpoint=true&type=flight with statusCode: 500 |
| ... |
| # after stacktrace |
| ... |
| flight-7c8df48b88-6pzwt integration 2020-03-02 10:56:30.256 INFO [XNIO-2 task-6] route1 - Flight purchase #18 has been cancelled |
| flight-7c8df48b88-6pzwt integration 2020-03-02 10:56:35.150 INFO [default-workqueue-3] route2 - Buying flight #19 |
| flight-7c8df48b88-6pzwt integration 2020-03-02 10:56:35.197 INFO [XNIO-1 I/O-1] route2 - Payment for flight #19 done |
| ``` |