# Week3
This week, I continued working on integrating a clean, async PostgreSQL backend into the Lighthouse Beacon Node.
The goal?
Replace Redb and LevelDB options with a more robust Postgres implementation that plays nicely in NFS environments and brings async flexibility to the storage layer.
The work spanned across several layers of the codebase -- from scaffolding `postgres_impl.rs`, wiring up the `AsyncKeyValueStore` interface, to surfacing the Postgres backend via a CLI flag `(--postgres-url`). With compile-time checked queries via `sqlx`, I began filling in the core database operations (`get_bytes, put_bytes, key_exists,` etc.) focusing on correctness and idiomatic async Rust.
Once the CLI wiring was confirmed working (as it recognized `--postgres-url`), I began to tackle the deeper integration challenges.
Through this, I learned a ton about Lighthouse's architecture, async design in real-world systems, and got much more confident managing Rust’s trait bounds and pattern matching in large enums.
You can follow the work [here](https://github.com/sigp/lighthouse/pull/7685/):
Next steps? Keep building out the backend methods, enable lighthouse test suite to run with a postgres db backend enabled, and polish up edge cases to prepare the system for production-grade usage.