> For the complete documentation index, see [llms.txt](https://gotolabs.gitbook.io/lightninguservault/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://gotolabs.gitbook.io/lightninguservault/introduction.md).

# Introduction

### 🤔 **How Does It Work?**

1. **Starting Up**: Once you kick off the web server, you'll find two main endpoints:
   * **Get Endpoint**: Use this to fetch a user's data.
   * **Post Endpoint**: Use this to store a user's data.
2. **Modularity Showcase**: The beauty of LightningUserVault lies in its modularity. It's a shining example of how a Go application can be structured into multiple modules. Plus, it's a guide on how to write tests for such applications.
3. **Storage Solutions**:

   * **Key-Value In-Memory Storage**: For those who prefer lightning-fast data access.
   * **SQL Storage**: For structured data storage and complex queries.

   Currently, we're using Pebble for key-value storage and Postgres for SQL. But here's the cool part: the web app doesn't mind which specific system you use, as long as it fits our Storage interface.
4. **Caching Mechanism**: Just like our storage, we've made caching modular too. If you can match our Cache interface, you can plug in any caching system you like. For now, we're using memcache.

{% embed url="<https://www.loom.com/share/bf737c3515e84192a9207157d0e3a5b7>" %}
Application Overview
{% endembed %}
