with recursive temp as(
    select 
        s1.service_id,
        s1.service_name,
        1 as dependency_depth,
        concat('Payment_Gateway->',s1.service_name) as dependency_path
    from service_dependencies sd
        join services s1 on sd.caller_service_id=s1.service_id
        join services s2 on sd.callee_service_id=s2.service_id
    where s2.service_name='Payment_Gateway' and year(first_call_date)='2025'

    union all

    select 
        s1.service_id,
        s1.service_name,
        1+dependency_depth ,
        concat(dependency_path,'->',s1.service_name)
    from temp t
        join service_dependencies sd on sd.callee_service_id=t.service_id
        join services s1 on sd.caller_service_id=s1.service_id
    where year(first_call_date)='2025'
)
select *
from temp
order by dependency_depth,service_id,dependency_path