--- ! name: "Verify graceful degradation while Kafka is unavailable" team: "{{teamKey}}" hypothesis: "An unavailable Kafka is not user-visible as it leads to graceful degradation\ \ and downstream retries as soon as the Kafka is back available again." environment: "{{environmentName}}" lanes: - steps: - ! ignoreFailure: false parameters: bail: false verbose: false duration: "10s" iterations: 10 environment: [] environmentIdOrName: "21222108-71f326a5-2134-4c3c-a159-8da6bce66a64" customLabel: "GIVEN: Orders are accepted" actionType: "com.steadybit.extension_postman.collection.run" radius: targetType: "com.steadybit.extension_postman.collection" predicate: operator: "AND" predicates: - key: "postman.collection.id" operator: "EQUALS" values: - "21222108-f59ac16f-81ff-4894-9261-fc6700b0c185" query: null percentage: 100 - ! ignoreFailure: false parameters: duration: "5s" - ! ignoreFailure: false parameters: url: "https://fulfillment.demo.steadybit.io/orders/?q=steadybit" method: "GET" headers: [] duration: "5s" statusCode: "200-299" readTimeout: "5s" successRate: 100 maxConcurrent: 5 connectTimeout: "5s" followRedirects: false numberOfRequests: 1 requestsPerSecond: "1" responsesContains: "count: 10" customLabel: "GIVEN: All orders are submitted" actionType: "com.steadybit.extension_http.check.periodically" radius: list: [] - steps: - ! ignoreFailure: false parameters: duration: "20s" - ! ignoreFailure: false parameters: port: [] duration: "30s" hostname: ["kafka.internal.steadybit.com"] customLabel: "WHEN: Kafka is not available" actionType: "com.steadybit.extension_container.network_blackhole" radius: targetType: "com.steadybit.extension_container.container" predicate: operator: "AND" predicates: - key: "k8s.cluster-name" operator: "EQUALS" values: - "prod-demo" - key: "k8s.namespace" operator: "EQUALS" values: - "steadybit-demo" query: null percentage: 100 - steps: - ! ignoreFailure: false parameters: duration: "20s" - ! ignoreFailure: false parameters: bail: false verbose: false duration: "30s" iterations: 30 environment: [] environmentIdOrName: "21222108-71f326a5-2134-4c3c-a159-8da6bce66a64" customLabel: "THEN: Orders are still accepted" actionType: "com.steadybit.extension_postman.collection.run" radius: targetType: "com.steadybit.extension_postman.collection" predicate: operator: "AND" predicates: - key: "postman.collection.id" operator: "EQUALS" values: - "21222108-f59ac16f-81ff-4894-9261-fc6700b0c185" query: null percentage: 100 - steps: - ! ignoreFailure: false parameters: duration: "80s" - ! ignoreFailure: false parameters: url: "https://fulfillment.demo.steadybit.io/orders/?q=steadybit" method: "GET" headers: [] duration: "5s" statusCode: "200-299" readTimeout: "5s" successRate: 100 maxConcurrent: 5 connectTimeout: "5s" followRedirects: false numberOfRequests: 1 requestsPerSecond: "1" responsesContains: "count: 40" customLabel: "GIVEN: All orders are submitted" actionType: "com.steadybit.extension_http.check.periodically" radius: list: []