DevConnectDevConnect
Sign up · Log in
← back to the feed
1
showcase

Shipped: A service with a job running behind it

What Was Built A CSV Import Service — a REST API that accepts CSV file uploads, processes them in the background, and returns results asynchronously. The key pattern: the upload request returns instantly (HTTP 202), and a background worker handles the slow part. Repository: https://github.com/techtuber9988/behind-the-service Live URL: https://behind-the-service.onrender.com How to Verify Each Criterion 1. Deployed and reachable with repository linked - Visit https://behind-the-service.onrender.com/health — returns {"status":"ok"} - Repository is public at the GitHub link above 2. Request returns without waiting curl -X POST https://behind-the-service.onrender.com/auth/register \ -H "Content-Type: application/json" \ -d '{"email":"reviewer@test.com","password":"testpass123"}' # Copy the token, then: curl -X POST https://behind-the-service.onrender.com/imports \ -H "Authorization: Bearer <token>" \ -F "file=@any.csv" # Returns 202 instantly — processing happens after 3. Same outcome when run twice (idempotent) # Use same Idempotency-Key header twice: curl -X POST https://behind-the-service.onrender.com/imports \ -H "Authorization: Bearer <token>" \ -H "Idempotency-Key: test-key-123" \ -F "file=@any.csv" # Second call returns existing job, not a duplicate 4. README documents worker death Section titled "What Happens When the Worker Dies Mid-Job" with state diagram and 5 guarantees — data never lost, caller can detect stuck jobs, partial progress preserved. 5. 401 without credentials curl -s -o /dev/null -w "%{http_code}" \ https://behind-the-service.onrender.com/imports/any-id # Returns 401 6. No secrets committed .env is in .gitignore. JWT_SECRET is only in Render's environment variables, never in the repository. Repository: https://github.com/techtuber9988/behind-the-service Built for the Verified Backend Internship · Final project
Add a comment
0/2000