# Path / File Description Clean Architecture DDD Hexagonal CQRS Event-Driven Serverless
1build.gradleGradle build script
2settings.gradleGradle settings
3template.yamlAWS SAM / Lambda template
4src/main/java/org/ldschurch/rest_api/domain/Core domain layer
5domain/model/User.javaDomain entity
6domain/service/BusinessRules.javaDomain services for business logic
7domain/event/DomainEvent.javaBase domain event class
8domain/event/UserCreatedEvent.javaUser created event
9domain/event/EventPublisher.javaPublishes domain events
10domain/command/handlers/UserCommandHandler.javaHandles domain commands
11application/command/CreateUserCommand.javaCommand object to create user
12application/command/UpdateUserCommand.javaCommand object to update user
13application/command/DeleteUserCommand.javaCommand object to delete user
14application/command/CommandHandler.javaGeneric command handler interface
15application/query/GetUserQuery.javaQuery object to get user
16application/query/ListUsersQuery.javaQuery object to list users
17application/query/QueryHandler.javaGeneric query handler interface
18application/port/input/CommandUseCase.javaInput port for commands
19application/port/input/QueryUseCase.javaInput port for queries
20application/port/input/EventHandlerUseCase.javaInput port for events
21application/port/output/UserWriteRepositoryPort.javaOutput port for writes
22application/port/output/UserReadRepositoryPort.javaOutput port for reads
23application/port/output/EventPublisherPort.javaOutput port for publishing events
24application/service/command/CreateUserService.javaService executing create command
25application/service/command/UpdateUserService.javaService executing update command
26application/service/command/DeleteUserService.javaService executing delete command
27application/service/query/GetUserService.javaService executing get query
28application/service/query/ListUsersService.javaService executing list query
29application/service/EventDrivenService.javaHandles domain events
30adapter/rest/command/UserCommandController.javaREST controller for commands
31adapter/rest/command/HealthCheckController.javaHealth check endpoint
32adapter/rest/query/UserQueryController.javaREST controller for queries
33adapter/persistence/write/JpaUserWriteRepositoryAdapter.javaJPA adapter for writes
34adapter/persistence/read/JpaUserReadRepositoryAdapter.javaJPA adapter for reads
35adapter/lambda/CommandLambdaHandler.javaLambda handler for commands
36adapter/lambda/QueryLambdaHandler.javaLambda handler for queries
37adapter/events/KafkaEventPublisherAdapter.javaKafka event publishing adapter
38adapter/events/SnsEventPublisherAdapter.javaSNS event publishing adapter
39adapter/events/SqsEventListener.javaSQS event listener
40adapter/events/EventDeserializer.javaEvent deserializer
41adapter/config/BeanConfig.javaSpring bean configuration
42adapter/config/KafkaConfig.javaKafka configuration
43adapter/config/SnsConfig.javaSNS configuration
44adapter/config/SqsConfig.javaSQS configuration
45infrastructure/tracing/LoggingAspect.javaLogging AOP for tracing
46infrastructure/tracing/TracingInterceptor.javaInterceptor for tracing
47infrastructure/exception/GlobalExceptionHandler.javaGlobal exception handler
48infrastructure/metrics/MetricsCollector.javaMetrics collection utility
49SpringbootLambdaApplication.javaMain Spring Boot entry point
50resources/application.ymlSpring configuration
51resources/logback-spring.xmlLogging configuration
52resources/static/Static files (JS, CSS, images)
53test/application/command/CreateUserServiceTest.javaUnit test for create command service
54test/application/query/GetUserServiceTest.javaUnit test for get query service
55test/adapter/persistence/write/JpaUserWriteRepositoryAdapterTest.javaTest for write repository adapter
56test/adapter/persistence/read/JpaUserReadRepositoryAdapterTest.javaTest for read repository adapter
57test/adapter/events/KafkaEventPublisherAdapterTest.javaTest for Kafka publisher adapter
58build/distributions/springboot-lambda-0.0.1-SNAPSHOT.zipBuild artifact