AI Agents ਮੈਨੂੰ SQLite ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ ਕਿਉਂ ਪ੍ਰੇਰਿਤ ਕਰਦੇ ਹਨ
ਮੈਂ ਪਹਿਲਾਂ ਬਿਨਾਂ ਸੋਚੇ Postgres ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਸੀ। ਹੁਣ, ਮੈਂ SQLite ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹਾਂ।
ਇਸਦਾ ਮਤਲਬ ਇਹ ਨਹੀਂ ਹੈ ਕਿ Postgres ਖਤਮ ਹੋ ਗਿਆ ਹੈ। ਮੈਂ ਅਜੇ ਵੀ ਇਸਦੀ ਅਕਸਰ ਵਰਤੋਂ ਕਰਦਾ ਹਾਂ। ਇਸ ਦੀ ਬਜਾਏ, AI agents ਕਰਕੇ ਮੇਰੀ ਸੋਚ ਬਦਲ ਗਈ ਹੈ।
AI agents ਡੇਟਾ ਨੂੰ ਸੰਭਾਲਣ ਦੇ ਸਾਡੇ ਤਰੀਕੇ ਨੂੰ ਬਦਲ ਦਿੰਦੇ ਹਨ। ਉਹਨਾਂ ਦਾ ਸਟੇਟ (state) ਤੇਜ਼ੀ ਨਾਲ ਬਦਲਣ ਵਾਲਾ (high-churn), ਸਥਾਨਕ (local) ਅਤੇ ਨਿੱਜੀ (private) ਹੁੰਦਾ ਹੈ। ਹਰ ਛੋਟੀ ਤਬਦੀਲੀ ਨੂੰ ਇੱਕ ਕੇਂਦਰੀ Postgres ਸਰਵਰ 'ਤੇ ਭੇਜਣਾ ਹੌਲੀ ਅਤੇ ਮਹਿੰਗਾ ਹੁੰਦਾ ਹੈ।
ਇੱਥੇ ਕਾਰਨ ਦਿੱਤੇ ਗਏ ਹਨ ਕਿ ਇਹ ਕੰਮ (workloads) ਲਈ SQLite ਕਿਉਂ ਜਿੱਤ ਰਿਹਾ ਹੈ:
- ਨੇੜਤਾ (Proximity): ਉਪਯੋਗੀ agents ਉੱਥੇ ਚੱਲਦੇ ਹਨ ਜਿੱਥੇ ਤੁਸੀਂ ਕੰਮ ਕਰਦੇ ਹੋ। ਉਹ ਤੁਹਾਡੇ terminal, IDE, ਜਾਂ browser ਵਿੱਚ ਚੱਲਦੇ ਹਨ। Local SQLite ਰੀਡਸ (reads), network ਰੀਡਸ ਨਾਲੋਂ ਕਿਤੇ ਜ਼ਿਆਦਾ ਤੇਜ਼ ਹੁੰਦੇ ਹਨ।
- ਲਾਗਤ (Cost): ਤੁਹਾਨੂੰ ਅਜਿਹੇ ਕੱਚੇ ਕੰਮ (scratch work) ਨੂੰ ਸਟੋਰ ਕਰਨ ਲਈ ਭਾਰੀ ਇਨਫਰਾਸਟ੍ਰਕਚਰ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ ਜੋ ਸਿਰਫ ਇੱਕ ਘੰਟੇ ਲਈ ਚੱਲਦਾ ਹੈ।
- ਨਿੱਜਤਾ (Privacy): ਕਿਸੇ agent ਦੇ ਫਾਈਲ ਇੰਡੈਕਸ ਨੂੰ ਸਥਾਨਕ ਮਸ਼ੀਨ 'ਤੇ ਰੱਖਣ ਨਾਲ ਡੇਟਾ-ਹੈਂਡਲਿੰਗ ਦੇ ਬੇਲੋੜੇ ਜੋਖਮਾਂ ਤੋਂ ਬਚਿਆ ਜਾ ਸਕਦਾ ਹੈ।
SaaS ਬਿਲਡਰਾਂ ਲਈ, ਮੈਂ ਇੱਕ ਨਵਾਂ ਪੈਟਰਨ ਦੇਖ ਰਿਹਾ ਹਾਂ: ਹਰੇਕ tenant ਲਈ ਇੱਕ SQLite ਡੇਟਾਬੇਸ।
ਪੁਰਾਣੇ ਤਰੀਕੇ ਵਿੱਚ, ਅਸੀਂ ਇੱਕ ਵੱਡਾ Postgres ਡੇਟਾਬੇਸ ਵਰਤਦੇ ਸੀ ਅਤੇ tenant_id ਕਾਲਮ ਨਾਲ ਸਭ ਕੁਝ ਫਿਲਟਰ ਕਰਦੇ ਸੀ। SQLite ਦੇ ਨਾਲ, ਹਰੇਕ tenant ਨੂੰ ਆਪਣੀ ਵੱਖਰੀ ਫਾਈਲ ਮਿਲਦੀ ਹੈ। ਇਹ ਬਿਹਤਰ ਲਾਭ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ:
- ਅਲਗਥਲ ਰੱਖਣਾ (Isolation): ਇੱਕ tenant ਫਾਈਲ ਵਿੱਚ ਕੋਈ ਗਲਤੀ ਪੂਰੇ ਕਲੱਸਟਰ (cluster) ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਨਹੀਂ ਕਰਦੀ।
- ਸਕੈਲਿੰਗ (Scaling): ਇੱਕ ਨਵਾਂ tenant ਜੋੜਨਾ ਸਿਰਫ ਇੱਕ ਨਵੀਂ ਫਾਈਲ ਜੋੜਨਾ ਹੈ। ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਕੋਈ ਭਾਰੀ ਪ੍ਰਕਿਰਿਆ ਨਹੀਂ ਹੈ।
- ਸਰਲਤਾ (Simplicity): ਬੈਕਅੱਪ ਅਤੇ ਡਿਲੀਸ਼ਨ ਸਧਾਰਨ ਫਾਈਲ ਆਪਰੇਸ਼ਨ ਬਣ ਜਾਂਦੇ ਹਨ।
ਸਭ ਤੋਂ ਵਧੀਆ ਆਰਕੀਟੈਕਚਰ ਇੱਕ ਗ੍ਰੇਡੀਐਂਟ (gradient) ਹੈ।
SQLite ਨੂੰ ਆਪਣੇ ਵਰਕਬੈਂਚ (workbench) ਵਜੋਂ ਵਰਤੋ। ਇਹ ਤੇਜ਼, ਸਥਾਨਕ ਅਤੇ ਅਸਥਾਈ ਸਟੇਟ ਲਈ ਹੈ। Postgres ਨੂੰ ਆਪਣੀ ਵੌਲਟ (vault) ਵਜੋਂ ਵਰਤੋ। ਇਹ ਪੈਸੇ, ਬਿਲਿੰਗ ਅਤੇ ਗਲੋਬਲ ਸੱਚਾਈ (global truth) ਲਈ ਹੈ।
ਇੱਕ event log ਦੋਵਾਂ ਨੂੰ ਜੋੜਦਾ ਹੈ। ਕੱਚਾ ਕੰਮ SQLite ਵਿੱਚ ਹੁੰਦਾ ਹੈ, ਅਤੇ ਮਹੱਤਵਪੂਰਨ ਤਬਦੀਲੀਆਂ ਕੇਂਦਰੀ ਲੈਜਰ (central ledger) ਵਿੱਚ ਚਲਦੀਆਂ ਹਨ।
ਐਕੋਸਿਸਟਮ ਅੰਤ ਵਿੱਚ ਇਸਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ। Turso ਅਤੇ Cloudflare D1 ਵਰਗੇ ਟੂਲ ਉਹ ਨੈੱਟਵਰਕਿੰਗ ਅਤੇ ਰੀਪਲੀਕੇਸ਼ਨ ਪ੍ਰਦਾਨ ਕਰਦੇ ਹਨ ਜੋ SQLite ਵਿੱਚ ਸਾਲਾਂ ਤੋਂ ਨਹੀਂ ਸੀ।