VRO Engineer Overview - department-of-veterans-affairs/abd-vro GitHub Wiki
Technology Stack
VRO software leverages a wide range of tools and technologies, categorized by their purpose within the stack:
Programming Languages
- Java: Most of the project is built using the Spring Framework.
- Python: Domain services (partner team projects) are primarily written in Python.
- Ruby: One domain service is currently written in Ruby.
Infrastructure & Services
- RabbitMQ: Serves as the primary communication bus between microservices, using AMQP architecture.
- Gradle: Utilized for build automation. Refer to the
buildSrc
folder for details. - Docker: Extensively used for local development and deployments.
- Note: In most cases, Docker Desktop is not provided. Colima is recommended as an alternative container runtime.
- Postgres: AWS RDS Postgres is employed for database services, managed through Helm charts.
- Redis: Currently in the process of being removed from the stack.
- Kubernetes: VRO’s DevOps operations are supported by LHDI infrastructure.
- ArgoCD: Used for deployment management (see this issue).
Key Repositories
VRO also utilizes these key repositories for project management and deployments:
- VRO Public Repo: Main repository for the VRO project.
- VRO Internal Repo: Used for running SecRel scans.
- ArgoCD Repo: Contains the ArgoCD URL for viewing deployments.
- VRO Skeleton: VRO Python starter project. Eventually, Java and Ruby skeleton projects will be added.
Key Resources
- VRO Local Dev Environment Setup: How to get the VRO dev environment working locally.
- VRO Architecture Design Diagram: An overview of VRO's architecture.
- VRO Engineer Onboarding: Onboarding guidelines for new engineers.
- VRO Services, Points of Contact, and Issue Escalation Paths: Use this document to familiarize yourself with partner teams, services, and issue escalation paths.
- On-Call Overview: Guidelines for on-call duties.