Bootstrap Skaffold configuration Run the following command to generate a skaffold.yaml config file: skaffold init
Run the following command to begin using Skaffold for continuous development skaffold dev
minikube tunnel
kubectl exec -it kafka-0 -- bash
kafka-topics --create --topic reservation --partitions 2 --replication-factor 2 --bootstrap-server kafka-0.kafka-headless.kafka.svc.cluster.local:9092
kafka-topics --describe --topic reservation --bootstrap-server kafka-0.kafka-headless.kafka.svc.cluster.local:9092
- reservation
- ReservationRequestedEvent Triggered by the customer submitting a reservation request.
- AvailabilityConfirmed Emitted by the system after validating the request and confirming availability.
- ReservationCreatedEvent Signals that a new reservation has been successfully created.
- ReservationCanceledEvent Indicates that a reservation has been cancelled.
- ReservationModifiedEvent Notifies that changes have been made to an existing reservation.
- ReservationCheckedInEvent Signals that a booked service or resource usage has started.
- ReservationCheckedOutEvent Indicates that a booked service or resource usage has ended.
- AddedToWaitlistEvent Notifies that a customer has been added to a waitlist for a service/resource.
- PromotionAppliedEvent Signals the successful application of a promotion or discount to a reservation.
- ReservationExpiredEvent Signals that a reservation request has expired due to inactivity.
- OverreservationProcessedEvent Signals that the system has handled the situation of overreservation by managing excess reservations.
- ReservationConfirmationSentEvent Indicates that a confirmation notification has been sent to the customer after a successful reservation.
- PaymentAuthorizedEvent (Policy Event Trigger) Signals successful authorization of payment associated with a reservation.
- PaymentCompletedEvent Indicates the successful completion of a payment transaction for a reservation.
- PaymentFailedEvent Signals that a payment transaction for a reservation has failed.
Happy Path Workflow:
- Reservation Creation
- Customer submits a reservation request.
- System validates the request and confirms availability.
- Reservation is successfully created.
- Confirmation is sent to the customer.
- Payment authorization is requested.
- Payment is successfully authorized.
- Payment completion is confirmed.
- Reservation is finalized.
- Reservation Modification
- Customer requests a modification to an existing reservation.
- System validates the modification and confirms availability.
- Reservation is successfully updated.
- Confirmation of modification is sent to the customer.
- Payment authorization may be requested for additional charges.
- Payment, if required, is successfully authorized and completed.
- Updated reservation details are finalized.
- Reservation Cancellation
- Customer requests cancellation of a reservation.
- System confirms cancellation.
- Reservation is successfully cancelled.
- Confirmation of cancellation is sent to the customer.
- Any applicable refunds are processed.
- Check-In and Check-Out
- Customer checks in for a booked service/resource.
- System confirms check-in.
- Customer uses the service/resource.
- Customer checks out.
- System confirms check-out.
Alternative Path Workflow
- Reservation Creation Failure
- Customer submits a reservation request.
- System validates the request but finds no availability.
- System notifies the customer of unavailability.
- Optionally, customer may be added to a waitlist.
- Reservation Modification Failure
- Customer requests a modification to an existing reservation.
- System validates the modification but finds conflicts.
- System notifies the customer of the conflict and suggests alternatives.
- Reservation Cancellation Failure
- Customer requests cancellation of a reservation.
- System encounters an error in cancellation.
- System notifies the customer of the failure and suggests contacting support.
- Payment Failure
- Customer submits a reservation request.
- System validates the request and confirms availability.
- Payment authorization fails.
- System notifies the customer of the payment failure and suggests alternative payment methods.
- Overreservation Handling
- Customer submits a reservation request.
- System validates the request and detects potential overreservation.
- System notifies the customer of the situation and suggests alternative reservation times or accommodations.
- CreateReservationCommand Initiates the process of creating a new reservation.
- SendReservationConfirmationCommand Sends a confirmation notification to the customer after a successful reservation.
- CancelReservationCommand Requests the cancellation of an existing reservation.
- ModifyReservationCommand Initiates changes to an existing reservation, such as altering the time, duration, or details of the reservation.
- CheckinCommand Indicates the beginning of a booked service or resource usage.
- CheckoutCommand Indicates the end of a booked service or resource usage.
- AddToWaitlistCommand Adds a customer to a waitlist for a service/resource that is currently unavailable.
- ApplyPromotionCommand Applies a promotion or discount to a reservation.
- ExpireReservationCommand Marks a reservation request as expired due to inactivity or lack of confirmation.
- ProcessOverreservationCommand Handles the situation of overreservation by managing the excess reservations.