This repository contains the codebase for the Midas Analytics Service, a project designed to demonstrate modern microservice architecture using Java Spring Boot, with planned extensions in Go, Cassandra, and Terraform. The project is structured to provide a robust backend and, in the future, a Go-based analytics microservice and infrastructure as code.
jpmc-Midas/
forage-midas/
go-analytics/
main.go # (Go microservice - planned, not yet functional)
# (other Go files: e.g., consumer.go, database/, kafka/)
src/
main/
java/
com/jpmc/midascore/
# Java Spring Boot backend (implemented)
terraform/ # (Infrastructure as code - planned)
README.md
# ...other files
go.mod
- Entities:
TransactionRecord
,UserRecord
, etc. - Controllers:
BalanceController
- Repositories:
TransactionRepository
,UserRepository
- Services:
TransactionService
- Kafka Integration:
TransactionListener
- Database Integration:
DatabaseConduit
- Testing: Multiple test classes for core functionality.
Note: The Go microservice and Terraform infrastructure are not yet functional. Current Go code is experimental and not production-ready.
- Kafka Producer & Consumer:
- Implement robust Kafka producer and consumer in Go to process and analyze messages.
- Cassandra Integration:
- Use a Go Cassandra driver (e.g.,
gocql
) to persist and query analytics data.
- Use a Go Cassandra driver (e.g.,
- RESTful API:
- Expose analytics endpoints via HTTP using
gorilla/mux
.
- Expose analytics endpoints via HTTP using
- Automated Provisioning:
- Use Terraform to provision Kafka, Cassandra, and networking resources.
- Environment Management:
- Separate configurations for development, staging, and production.
- Automated testing and deployment for both Java and Go services.
- Terraform plan/apply automation.
- Comprehensive API documentation (Swagger/OpenAPI).
- Sample data and usage examples.
- Learning guides for running and extending the system.
- Navigate to the project directory:
cd forage-midas
- Build and run the Spring Boot application:
./mvnw spring-boot:run
- Run tests:
./mvnw test
Note: Go microservice and Terraform scripts are not yet functional. Instructions will be updated as these components are implemented.