About: Hello everyone in the developer community! π I'm a backend developer with 3 years of experience in building scalable and maintainable systems. Nice to meet you everyone!
This is my very first product β a small starter project built based on the clean architecture structure I use in real-world projects. Though itβs simple, Iβve made sure it follows professional patterns and is easy to understand and extend.
πΉ Tech Stack Highlights:
Hexagonal Architecture (Ports & Adapters)
Spring Boot (Kotlin)
Kafka integration
JOOQ + PostgreSQL
Docker Compose-ready
I hope you enjoy it, and thank you so much for your support!
π― Whatβs next if I get your support?
Deeper dive into Hexagonal Architecture patterns
More Kafka use cases (event-driven, command, notification...)
More complex real-world project structures
Thank you for checking out my first product β stay tuned for more! π
Project structure:
a_spring_hexagonal_jooq_kafka_project/
βββ category-backend/
β βββ build.gradle.kts
β βββ gradlew
β βββ gradlew.bat
β βββ gradle/wrapper/...
β βββ settings.gradle.kts
β βββ README.md
β βββ src/
β βββ main/
β β βββ kotlin/com/example/categorybackend/
β β β βββ CategoryBackendApplication.kt
β β β βββ adapter/
β β β β βββ api/
β β β β β βββ CategoryController.kt
β β β β β βββ CategoryDTOs.kt
β β β β βββ db/
β β β β βββ JooqCategoryRepository.kt
β β β βββ domain/
β β β β βββ model/
β β β β β βββ Category.kt
β β β β βββ port/
β β β β βββ CategoryRepository.kt
β β β βββ infrastructure/
β β β β βββ JooqConfig.kt
β β β βββ usecase/
β β β βββ CategoryUseCase.kt
β β β βββ CategoryUseCaseImpl.kt
β β βββ resources/
β β βββ application.yml
β β βββ db/migration/
β β βββ V1_create_category_table.sql
β βββ test/... (empty basic test structure)
βββ product-backend/
β βββ build.gradle.kts
β βββ gradlew
β βββ gradlew.bat
β βββ gradle/wrapper/...
β βββ settings.gradle.kts
β βββ README.md
β βββ src/
β βββ main/
β β βββ kotlin/com/example/productbackend/
β β β βββ ProductBackendApplication.kt
β β β βββ adapter/
β β β β βββ api/
β β β β β βββ ProductController.kt
β β β β β βββ ProductDTOs.kt
β β β β βββ db/
β β β β β βββ JooqProductRepository.kt
β β β β βββ http/
β β β β β βββ RemoteCategoryServiceAdapter.kt
β β β β βββ kafka/
β β β β βββ KafkaProductEventProducer.kt
β β β βββ domain/
β β β β βββ model/
β β β β β βββ Product.kt
β β β β β βββ event/
β β β β β βββ ProductCreatedEvent.kt
β β β β βββ port/
β β β β βββ CategoryServicePort.kt
β β β β βββ ProductEventPublisher.kt
β β β β βββ ProductRepository.kt
β β β βββ infrastructure/
β β β β βββ AppConfig.kt
β β β β βββ JooqConfig.kt
β β β β βββ KafkaConfig.kt
β β β βββ usecase/
β β β βββ ProductUseCase.kt
β β β βββ ProductUseCaseImpl.kt
β β βββ resources/
β β βββ application.yml
β β βββ db/migration/
β β βββ V1_create_product_table.sql
β βββ test/... (empty basic test structure)
βββ docker-compose.yml
βββ init-db.sh
victordev02.gumroad.com/l/yawgkf