cqrs ddd golang