JSON is just a text file format, not a database. If two users try to write to the same JSON file at the same time, you can get:
- ❌ Corrupted JSON (half-written data)
- ❌ Lost updates (one write overwrites another)
- ❌ Race conditions
- ❌ Invalid file structure
🔥 What Happens in Concurrent Writes?
Example:
User A writes:
{ "name": "Aditya" }
User B writes at the same time:
{ "email": "test@example.com" }
Result could become:
{ "name": "Adi{ "email": "test@example.com" }
Now the file is broken JSON.
✅ How To Handle Concurrent Writes
1️⃣ File Locking (Basic Solution)
If you’re using PHP, use flock():
$file = 'data.json';
$fp = fopen($file, 'c+');if (flock($fp, LOCK_EX)) { // Exclusive lock
$data = json_decode(file_get_contents($file), true);
$data['new'] = 'value';
ftruncate($fp, 0);
rewind($fp);
fwrite($fp, json_encode($data, JSON_PRETTY_PRINT));
flock($fp, LOCK_UN);
}fclose($fp);
✔ Prevents two processes writing at same time
❌ Still not ideal for heavy traffic
2️⃣ Write to Temp File + Rename (Safer Method)
Write to a temporary file and then replace:
file_put_contents('data_temp.json', json_encode($data));
rename('data_temp.json', 'data.json');
This reduces corruption risk.
3️⃣ Use a Database (Best Solution 🚀)
If multiple users need to update data:
- MySQL
- PostgreSQL
- SQLite
- MongoDB
Databases are built for:
- Concurrency control
- Transactions
- Atomic writes
- Data integrity
⚠️ When JSON is OK
Using JSON file is fine if:
- Single-user system
- Read-heavy, write-rare
- Static config file
- Low traffic site
🚀 Enterprise Recommendation (For Your Projects)
Since you’re running SOA Technology and building scalable tools:
If:
- More than 5–10 concurrent users
- API-based system
- Production system
👉 Do NOT use JSON as primary storage
👉 Use MySQL / PostgreSQL
🎯 Final Answer
| Scenario | Safe? |
|---|---|
| Single user writing | ✅ Yes |
| Multiple users writing | ❌ No |
| Multiple users reading only | ✅ Yes |
| High traffic system | ❌ Use database |







