How mydevhero/caosdba works
CAOSDBA is a C++ data-access framework with cache-first queries, pooled relational database access, and CrowCpp HTTP or native-language interfaces. The documented request path checks Redis, runs a database query on a miss, and caches a returned value. The excerpts show that behavior for the Redis query and connection acquisition in database query implementations. README-level relationships describe the HTTP and language-binding capabilities; their internal dispatch is not established by the sampled source.
Main entry points: Database.cpp Database pool · MySQL/Query.hpp Binding query templates · Redis/Query.hpp Redis query · Database/Query.hpp Database queries
Components 18
Application Interfaces
- CrowCpp HTTP
libcaos/include/CrowCpp.hpp - Node binding
bindings/node/bindings.cpp - PHP binding
bindings/php/bindings.cpp - Python binding
bindings/python/bindings.cpp
Query Layer
- Repository interface
libcaos/Middleware/Repository/IRepository.hpp - Redis query
libcaos/Middleware/Repository/Cache/Redis/Query.hpp - Database queries
libcaos/Middleware/Repository/Database/Query.hpp - Binding query templates
template/bindings/nodejs/src/include/Database/MySQL/Query.hpp
Persistence
- Cache manager
libcaos/Middleware/Repository/Cache/Cache.hpp - Redis adapter
libcaos/Middleware/Repository/Cache/Redis/Redis.hpp - Database pool
libcaos/Middleware/Repository/Database/Database.cpp - MariaDB driver
libcaos/Middleware/Repository/Database/MariaDB/Query.hpp - MySQL driver
libcaos/Middleware/Repository/Database/MySQL/MySQL.hpp - PostgreSQL driver
libcaos/Middleware/Repository/Database/PostgreSQL/Query.hpp
Core Infrastructure
- CAOSDBA facade
libcaos/include/libcaos.hpp
Other components
- Application caller
- Redis store
- Relational database
Connections 19
- Application caller → CrowCpp HTTP: calls REST
- Application caller → Node binding: calls native
- Application caller → PHP binding: calls native
- Application caller → Python binding: calls native
- CrowCpp HTTP → CAOSDBA facade: uses framework
libcaos/include/libcaos.hpp - Node binding → Binding query templates: exposes queries
- PHP binding → Binding query templates: exposes queries
- Python binding → Binding query templates: exposes queries
- CAOSDBA facade → Repository interface: exposes repository
libcaos/include/libcaos.hpp - Redis query → Redis store: reads cache
libcaos/Middleware/Repository/Cache/Redis/Query.hpp - Redis query → Database queries: queries on miss
libcaos/Middleware/Repository/Cache/Redis/Query.hpp - Redis query → Redis store: writes result
libcaos/Middleware/Repository/Cache/Redis/Query.hpp - Database queries → Database pool: acquires connection
libcaos/Middleware/Repository/Database/Database.cpp - Database queries → Relational database: executes query
- Binding query templates → Database pool: acquires connection
template/bindings/nodejs/src/include/Database/MySQL/Query.hpp - Database pool → MariaDB driver: dispatches driver
- Database pool → MySQL driver: dispatches driver
libcaos/Middleware/Repository/Database/Database.cpp - Database pool → PostgreSQL driver: dispatches driver
- Redis adapter → Cache manager: uses cache
libcaos/Middleware/Repository/Cache/Redis/Redis.hpp