Elara is a microservices backend focused on inventory management and unit-of-measure governance.
This project was conceived and developed autonomously by @andresbetov, with a strong focus on production-grade software practices, long-term maintainability, and technical clarity.
Elara currently implements two core business capabilities:
- Inventory domain (
inventory-service): inventory item lifecycle management (create, update, delete, get by id, pagination, and search). - Unit-of-measure domain (
unit-of-measure-service): UOM catalog and UOM status lifecycle used as reference data for inventory validation.
The rest of the platform services support these domains as infrastructure components.
| Service | Base path | Implemented operations |
|---|---|---|
inventory-service |
/item/ |
Create, update, delete, get by id, paginated list, paginated name search |
unit-of-measure-service |
/ and /status/ |
UOM CRUD, UOM status CRUD, status-based filtering, status association/usability changes |
Detailed contracts and examples are documented in each service repository:
Elara is structured as a decoupled Spring Cloud ecosystem where each service owns a specific responsibility:
| Component | Technical role |
|---|---|
api-gateway |
Single entry point for clients, routing requests to internal services. |
discovery-service |
Eureka service registry for dynamic service lookup and resilient routing. |
config-service |
Centralized configuration server for environment-aware runtime properties. |
centralized-configuration |
Versioned configuration repository (dev, test, prod) consumed by Config Server. |
unit-of-measure-service |
Reference-data service for UOM catalog and status governance. |
inventory-service |
Domain service for inventory item lifecycle and stock-related master data. |
This separation of concerns enables independent evolution, safer deployments, and clear service ownership boundaries.
- Clients call
api-gateway. - Gateway resolves target services through
discovery-service. - Services bootstrap configuration from
config-service, backed bycentralized-configuration. inventory-servicevalidates UOM dependencies againstunit-of-measure-servicethrough discovery-aware service communication.- Secrets are sourced via Vault integration in supported profiles.
This model keeps domain services focused on business rules while platform services handle cross-cutting infrastructure concerns.
- Layered architecture (
controller -> service -> repository -> mapper -> DTO), with explicit boundaries and low coupling. - Strict validation at API and persistence levels (
jakarta.validation, entity constraints). - Centralized error contracts using typed exception hierarchies and global handlers.
- OpenAPI-first documentation with reusable schemas and concrete JSON examples.
- Testing discipline across controller, service, repository, mapper, exception, and utility layers.
- Build-enforced quality gates with JaCoCo thresholds in Maven lifecycle.
- Externalized configuration and secret management (Config Server + profile-specific config + Vault integration).
- Production-friendly observability patterns via structured logging conventions and explicit operational contracts.
These are implementation-level decisions that directly improve reliability, maintainability, and scalability.
- Quality gates in build (JaCoCo thresholds enforced in Maven lifecycle):
- Testing standards and patterns:
- Service-level architecture and runtime contracts:
This README intentionally describes only what is currently documented and implemented in this architecture scope:
- inventory item management,
- unit-of-measure and unit-of-measure-status management,
- the platform services that support those domains (gateway, discovery, config, centralized configuration).
It does not claim additional implemented business modules in this profile beyond that scope.
Automatically synchronized list of repositories and latest commits in the Elara organization.
| Repository | Branch | Commit | Date (UTC) | Message | Author |
|---|---|---|---|---|---|
| inventory-service | develop |
4c45604 | 4/12/2026, 8:19:40 PM | Merge pull request #59 from elara-app/feature/improve-readme-file docs(README.md): enhance project description and service interaction … | andresbetov |
| .github | main |
aebeece | 4/13/2026, 1:47:53 AM | Merge pull request #8 from elara-app/develop Develop | andresbetov |
| unit-of-measure-service | develop |
1ad7a3f | 4/12/2026, 8:10:27 PM | Merge pull request #45 from elara-app/hotfix/fix-list-in-readme Hotfix/fix list in readme | andresbetov |
| config-service | main |
6c24f3d | 4/11/2026, 3:20:23 AM | Merge pull request #9 from elara-app/develop Develop | andresbetov |
| discovery-service | main |
f52da57 | 4/12/2026, 12:52:39 AM | Merge pull request #5 from elara-app/develop Develop | andresbetov |
| centralized-configuration | main |
dabb25f | 4/11/2026, 3:28:27 AM | Merge pull request #21 from elara-app/develop Develop | andresbetov |
| api-gateway | main |
ecf52ad | 4/11/2026, 11:56:54 PM | Merge pull request #6 from elara-app/develop Develop | andresbetov |
Last updated: 4/13/2026, 1:48:54 AM
The commits table above is maintained by an automated updater in the .github repository, using GitHub App authentication and targeted README updates.
Implementation details are available here: elara-app/.github/src.
For readers who want full technical context, this project is accompanied by a 281-page guide that documents the architecture from zero, explains why each major decision was made, details trade-offs (pros/cons), and describes the quality framework and engineering standards applied across implementation: Creating Elara App - Software Development (The document is in Spanish).
