<?xml version="1.0" encoding="UTF-8"?>
<scenario xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://varroa.org/scenario.xsd">
    <brokers>
        <!--Add listeners as separate brokers-->
    </brokers>

    <clientGroups>
        <clientGroup id="publishers">
            <count>20000000</count>
        </clientGroup>
        <clientGroup id="clients">
            <count>180000000</count>
            <clientIdPattern>c-[0-9]{9}</clientIdPattern>
        </clientGroup>
    </clientGroups>
    <topicGroups>
        <topicGroup id="topics-pub">
            <topicNamePattern>p-[0-9]{9}</topicNamePattern>
            <count>20000000</count>
        </topicGroup>
        <topicGroup id="topics">
            <topicNamePattern>t-[0-9]{9}</topicNamePattern>
            <count>180000000</count>
        </topicGroup>
    </topicGroups>
    <stages>
        <stage id="connect-pub">
            <lifeCycle id="connect-pub-lc" clientGroup="publishers">
                <delay spread="linear" duration="75s"/>
                <connect keepAlive="30m" cleanStart="false" sessionExpiry="24h" autoReconnect="true"/>
                <subscribe to="topics-pub" qos="2"/>
            </lifeCycle>
        </stage>
        <stage id="connect">
            <lifeCycle id="connect-lc" clientGroup="clients">
                <delay spread="linear" duration="750s"/>
                <connect keepAlive="30m" cleanStart="false" sessionExpiry="24h" autoReconnect="true"/>
                <subscribe to="topics" qos="2"/>
            </lifeCycle>
        </stage>
        <stage id="wait-1">
            <lifeCycle id="wait-1-lc" clientGroup="clients">
                <delay duration="30s"/>
            </lifeCycle>
        </stage>
        <stage id="warmup">
            <lifeCycle id="warmup-lc" clientGroup="publishers">
                <delay duration="10s" spread="linear"/>
                <publish topicGroup="topics" count="2" rate="1/120s" qos="1" message="0123456789012345"/>
            </lifeCycle>
        </stage>
        <stage id="publish">
            <lifeCycle id="publish-lc" clientGroup="publishers">
                <delay duration="600s" spread="linear"/>
                <publish topicGroup="topics" count="15" qos="1" message="0123456789012345"/>
            </lifeCycle>
        </stage>
        <stage id="wait-2">
            <lifeCycle id="wait-2-lc" clientGroup="clients">
                <delay duration="30s"/>
            </lifeCycle>
        </stage>
        <stage id="disconnect">
            <lifeCycle id="disconnect-lc" clientGroup="clients">
                <delay spread="linear" duration="420s"/>
                <disconnect/>
            </lifeCycle>
        </stage>
    </stages>
</scenario>
