- 1 Introduction to Backend Development ›
- 2 How the Web Works ›
- 3 Development Environment ›
- 4 Programming Fundamentals ›
- 5 Python for Backend Development ›
- 6 Introduction to Web Backends ›
- 7 REST APIs ›
- 8 FastAPI ›
- 9 Databases ›
- 10 SQL ›
- 11 PostgreSQL ›
- 12 ORM and Database Integration ›
- 13 Authentication ›
- 14 Authorization ›
- 15 Backend Security ›
- 16 Caching ›
- 17 Background Processing ›
- 18 Email ›
- 19 Testing ›
- 20 Logging and Monitoring ›
- 21 Docker ›
- 22 Web Servers and Reverse Proxies ›
- 23 Deployment ›
- 24 CI/CD ›
- 25 Backend Architecture ›
- 26 Performance and Scalability ›
- 27 Advanced API Development ›
- 28 Production Backend Engineering ›
- 29 Project 1: Task Management API ›
- 30 Project 2: Authentication System ›
- 31 Project 3: E-Commerce Backend ›
- 32 Final Project: Production Backend ›
- 33 Backend Developer Roadmap ›
17 Background Processing
17.1 Synchronous vs Asynchronous Tasks
17.2 Background Jobs
17.3 Message Queues
17.4 Celery
17.5 Redis as a Message Broker
17.6 Scheduled Tasks
17.7 Retry Strategies
17.8 Handling Failed Jobs
17.9 Email Jobs
17.10 Long-Running Tasks
Views: 14
Where to Move
Move chapter:
- β° 1 Introduction to Backend Development
- β° 1.1 What Is Backend Development?
- β° 1.2 Frontend vs Backend
- β° 1.3 How Web Applications Work
- β° 1.4 Client-Server Architecture
- β° 1.5 Request-Response Cycle
- β° 1.6 Static vs Dynamic Websites
- β° 1.7 Backend Developer Responsibilities
- β° 1.8 Backend Development Roadmap
-
- β° 2 How the Web Works
- β° 2.1 The Internet and the Web
- β° 2.2 IP Addresses
- β° 2.3 Domain Names
- β° 2.4 DNS
- β° 2.5 Ports
- β° 2.6 TCP/IP Basics
- β° 2.7 HTTP and HTTPS
- β° 2.8 HTTP Requests
- β° 2.9 HTTP Responses
- β° 2.10 HTTP Methods
- β° 2.11 HTTP Status Codes
- β° 2.12 HTTP Headers
- β° 2.13 Cookies
- β° 2.14 Sessions
- β° 2.15 What Happens When You Enter a URL?
-
- β° 3 Development Environment
- β° 3.1 Choosing an Operating System
- β° 3.2 Linux Basics for Backend Developers
- β° 3.3 Command Line Basics
- β° 3.4 Environment Variables
- β° 3.5 Installing Development Tools
- β° 3.6 Code Editors and IDEs
- β° 3.7 Git
- β° 3.8 GitHub and GitLab
- β° 3.9 Creating Your First Repository
- β° 3.10 Branches and Commits
- β° 3.11 Basic Git Workflow
-
- β° 4 Programming Fundamentals
- β° 4.1 Variables and Data Types
- β° 4.2 Operators
- β° 4.3 Conditions
- β° 4.4 Loops
- β° 4.5 Functions
- β° 4.6 Data Structures
- β° 4.7 Error Handling
- β° 4.8 Modules and Packages
- β° 4.9 File Handling
- β° 4.10 Object-Oriented Programming
- β° 4.11 Classes and Objects
- β° 4.12 Inheritance and Composition
- β° 4.13 Clean Code Principles
-
- β° 5 Python for Backend Development
- β° 5.1 Introduction to Python
- β° 5.2 Installing Python
- β° 5.3 Virtual Environments
- β° 5.4 pip and Package Management
- β° 5.5 Python Project Structure
- β° 5.6 Functions and Type Hints
- β° 5.7 Classes and Dataclasses
- β° 5.8 Exceptions
- β° 5.9 Working with Files
- β° 5.9.1 File Downloads
- β° 5.9.2 File Validation
- β° 5.9.3 Image Uploads
- β° 5.9.4 Local File Storage
- β° 5.9.5 Object Storage
- β° 5.9.6 S3-Compatible Storage
- β° 5.9.7 Presigned URLs
- β° 5.9.8 Secure File Handling
-
- β° 5.10 JSON
- β° 5.11 Date and Time
- β° 5.12 Logging
- β° 5.13 Configuration
- β° 5.14 Environment Variables
- β° 5.15 Async Programming
- β° 5.16 Python Backend Best Practices
-
- β° 6 Introduction to Web Backends
- β° 6.1 Building a Simple Web Server
- β° 6.2 Routing
- β° 6.3 URL Parameters
- β° 6.4 Query Parameters
- β° 6.5 Request Bodies
- β° 6.6 Form Data
- β° 6.7 JSON Requests
- β° 6.8 Returning Responses
- β° 6.9 Templates
- β° 6.10 Static Files
- β° 6.11 Middleware
- β° 6.12 Application Configuration
-
- β° 7 REST APIs
- β° 7.1 What Is an API?
- β° 7.2 What Is REST?
- β° 7.3 Resources and Endpoints
- β° 7.4 RESTful URL Design
- β° 7.5 HTTP Methods in REST
- β° 7.6 GET Requests
- β° 7.7 POST Requests
- β° 7.8 PUT Requests
- β° 7.9 PATCH Requests
- β° 7.10 DELETE Requests
- β° 7.11 Request Validation
- β° 7.12 Response Models
- β° 7.13 HTTP Status Codes
- β° 7.14 Error Responses
- β° 7.15 Pagination
- β° 7.16 Filtering
- β° 7.17 Sorting
- β° 7.18 Searching
- β° 7.19 API Versioning
- β° 7.20 API Documentation
- β° 7.21 OpenAPI and Swagger
-
- β° 8 FastAPI
- β° 8.1 Introduction to FastAPI
- β° 8.2 Routes and Path Operations
- β° 8.3 Path Parameters
- β° 8.4 Pydantic Models
- β° 8.5 Data Validation
- β° 8.6 Dependency Injection
- β° 8.7 Exception Handling
- β° 8.8 Background Tasks
- β° 8.9 File Uploads
- β° 8.10 Async Endpoints
- β° 8.11 FastAPI Project Structure
- β° 8.12 Building a Complete REST API
-
- β° 9 Databases
- β° 9.1 Introduction to Databases
- β° 9.2 Relational vs NoSQL Databases
- β° 9.3 Tables, Rows, and Columns
- β° 9.4 Primary Keys
- β° 9.5 Foreign Keys
- β° 9.6 Relationships
- β° 9.7 One-to-One Relationships
- β° 9.8 One-to-Many Relationships
- β° 9.9 Many-to-Many Relationships
- β° 9.10 Database Schema Design
- β° 9.11 Normalization
- β° 9.12 Indexes
- β° 9.13 Transactions
- β° 9.14 ACID Properties
-
- β° 10 SQL
- β° 10.1 Introduction to SQL
- β° 10.2 CREATE
- β° 10.3 INSERT
- β° 10.4 SELECT
- β° 10.5 UPDATE
- β° 10.6 DELETE
- β° 10.7 WHERE
- β° 10.8 ORDER BY
- β° 10.9 GROUP BY
- β° 10.10 Aggregate Functions
- β° 10.11 JOINs
- β° 10.12 Subqueries
- β° 10.13 Constraints
- β° 10.14 Indexes
- β° 10.15 Transactions
- β° 10.16 Common Table Expressions
- β° 10.17 SQL Performance Basics
-
- β° 11 PostgreSQL
- β° 11.1 Introduction to PostgreSQL
- β° 11.2 Installing PostgreSQL
- β° 11.3 Creating Databases
- β° 11.4 Users and Roles
- β° 11.5 Permissions
- β° 11.6 PostgreSQL Data Types
- β° 11.7 Constraints
- β° 11.8 Indexes
- β° 11.9 Transactions
- β° 11.10 JSON Data
- β° 11.11 Backup and Restore
- β° 11.12 PostgreSQL Performance Basics
-
- β° 12 ORM and Database Integration
- β° 12.1 What Is an ORM?
- β° 12.2 SQLAlchemy
- β° 12.3 Models
- β° 12.4 Database Sessions
- β° 12.5 Creating Records
- β° 12.6 Reading Records
- β° 12.7 Updating Records
- β° 12.8 Deleting Records
- β° 12.9 Relationships
- β° 12.10 Queries
- β° 12.11 Transactions
- β° 12.12 Connection Pooling
- β° 12.13 Database Migrations
- β° 12.14 Alembic
- β° 12.15 Repository Pattern
-
- β° 13 Authentication
- β° 13.1 Authentication vs Authorization
- β° 13.2 Password Storage
- β° 13.3 Password Hashing
- β° 13.4 Registration
- β° 13.5 Login
- β° 13.6 Tokens
- β° 13.7 JSON Web Tokens
- β° 13.8 Access Tokens
- β° 13.9 Refresh Tokens
- β° 13.10 OAuth 2.0
- β° 13.11 OpenID Connect
- β° 13.12 Social Login
- β° 13.13 Logout
- β° 13.14 Password Reset
- β° 13.15 Email Verification
- β° 13.16 Multi-Factor Authentication
-
- β° 14 Authorization
- β° 14.1 Users and Permissions
- β° 14.2 Role-Based Access Control
- β° 14.3 Permission-Based Access Control
- β° 14.4 Protecting API Endpoints
- β° 14.5 Admin Permissions
- β° 14.6 Resource Ownership
- β° 14.7 Authorization Best Practices
-
- β° 15 Backend Security
- β° 15.1 Introduction to Web Security
- β° 15.2 HTTPS and TLS
- β° 15.3 SQL Injection
- β° 15.4 Cross-Site Scripting
- β° 15.5 Cross-Site Request Forgery
- β° 15.6 CORS
- β° 15.7 Authentication Attacks
- β° 15.8 Brute-Force Protection
- β° 15.9 Rate Limiting
- β° 15.10 Input Validation
- β° 15.11 Secure Password Storage
- β° 15.12 Secrets Management
- β° 15.13 Secure Cookies
- β° 15.14 Security Headers
- β° 15.15 File Upload Security
- β° 15.16 Dependency Vulnerabilities
- β° 15.17 OWASP Top 10
-
- β° 16 Caching
- β° 16.1 Why Caching Matters
- β° 16.2 Application Caching
- β° 16.3 Redis
- β° 16.3.1 Introduction to Redis
- β° 16.3.2 Installing Redis
- β° 16.3.3 Keys and Values
- β° 16.3.4 Expiration
- β° 16.3.5 Distributed Locks
-
- β° 16.4 Cache Keys
- β° 16.5 Cache Invalidation
- β° 16.6 Caching Database Queries
- β° 16.7 Distributed Caching
-
- β° 17 Background Processing
- β° 17.1 Synchronous vs Asynchronous Tasks
- β° 17.2 Background Jobs
- β° 17.3 Message Queues
- β° 17.4 Celery
- β° 17.5 Redis as a Message Broker
- β° 17.6 Scheduled Tasks
- β° 17.7 Retry Strategies
- β° 17.8 Handling Failed Jobs
- β° 17.9 Email Jobs
- β° 17.10 Long-Running Tasks
-
- β° 18 Email
- β° 18.1 How Email Works
- β° 18.2 SMTP
- β° 18.3 Sending Emails
- β° 18.4 HTML Emails
- β° 18.5 Transactional Emails
- β° 18.6 Password Reset Emails
- β° 18.7 Background Email Delivery
- β° 18.8 Email Delivery Best Practices
-
- β° 19 Testing
- β° 19.1 Why Backend Testing Matters
- β° 19.2 Unit Testing
- β° 19.3 Integration Testing
- β° 19.4 API Testing
- β° 19.5 pytest
- β° 19.6 Fixtures
- β° 19.7 Mocking
- β° 19.8 Testing Databases
- β° 19.9 Testing Authentication
- β° 19.10 Testing FastAPI
- β° 19.11 Test Coverage
- β° 19.12 Automated Testing
-
- β° 20 Logging and Monitoring
- β° 20.1 Application Logging
- β° 20.2 Log Levels
- β° 20.3 Structured Logging
- β° 20.4 Request Logging
- β° 20.5 Error Logging
- β° 20.6 Metrics
- β° 20.7 Health Checks
- β° 20.8 Monitoring
- β° 20.9 Prometheus
- β° 20.10 Grafana
- β° 20.11 Alerting
- β° 20.12 Error Tracking
- β° 20.13 Observability Basics
-
- β° 21 Docker
- β° 21.1 Introduction to Containers
- β° 21.2 Docker Architecture
- β° 21.3 Images
- β° 21.4 Containers
- β° 21.5 Dockerfiles
- β° 21.6 Building Images
- β° 21.7 Running Containers
- β° 21.8 Volumes
- β° 21.9 Networks
- β° 21.10 Docker Compose
- β° 21.11 FastAPI with Docker
- β° 21.12 PostgreSQL with Docker
- β° 21.13 Redis with Docker
- β° 21.14 Multi-Container Applications
- β° 21.15 Production Docker Best Practices
-
- β° 22 Web Servers and Reverse Proxies
- β° 22.1 Application Servers
- β° 22.2 Uvicorn
- β° 22.3 Gunicorn
- β° 22.4 Reverse Proxies
- β° 22.5 Nginx
- β° 22.6 Traefik
- β° 22.7 HTTPS
- β° 22.8 TLS Certificates
- β° 22.9 Let's Encrypt
- β° 22.10 Load Balancing
-
- β° 23 Deployment
- β° 23.1 Development vs Production
- β° 23.2 Preparing an Application for Production
- β° 23.3 Linux Server Setup
- β° 23.4 Deploying with Docker
- β° 23.5 Environment Configuration
- β° 23.6 Managing Secrets
- β° 23.7 HTTPS Configuration
- β° 23.8 Production Logging
- β° 23.9 Backups
- β° 23.10 Zero-Downtime Deployment
- β° 23.11 Rollbacks
-
- β° 24 CI/CD
- β° 24.1 Introduction to CI/CD
- β° 24.2 Continuous Integration
- β° 24.3 Continuous Delivery
- β° 24.4 Continuous Deployment
- β° 24.5 CI/CD Pipelines
- β° 24.6 GitHub Actions
- β° 24.7 GitLab CI/CD
- β° 24.8 Building Docker Images
- β° 24.9 Container Registries
- β° 24.10 Deployment Pipelines
- β° 24.11 Staging Environments
- β° 24.12 Production Environments
- β° 24.13 Rollback Strategies
-
- β° 25 Backend Architecture
- β° 25.1 Monolithic Architecture
- β° 25.2 Modular Monoliths
- β° 25.3 Microservices
- β° 25.4 Layered Architecture
- β° 25.5 Service Layer
- β° 25.6 Separation of Concerns
- β° 25.7 Domain-Driven Design Basics
- β° 25.8 Event-Driven Architecture
- β° 25.9 Choosing an Architecture
-
- β° 26 Performance and Scalability
- β° 26.1 Understanding Backend Performance
- β° 26.2 CPU-Bound vs I/O-Bound Work
- β° 26.3 Asynchronous Programming
- β° 26.4 Database Optimization
- β° 26.5 Query Optimization
- β° 26.6 Indexing
- β° 26.7 Load Balancing
- β° 26.8 Horizontal Scaling
- β° 26.9 Vertical Scaling
- β° 26.10 Stateless Applications
- β° 26.11 Performance Testing
- β° 26.12 Load Testing
-
- β° 27 Advanced API Development
- β° 27.1 WebSockets
- β° 27.2 Server-Sent Events
- β° 27.3 GraphQL
- β° 27.4 Webhooks
- β° 27.5 Idempotency
- β° 27.6 API Rate Limiting
- β° 27.7 API Keys
- β° 27.8 API Gateways
- β° 27.9 Distributed APIs
- β° 27.10 Real-Time Applications
-
- β° 28 Production Backend Engineering
- β° 28.1 Configuration Management
- β° 28.2 Database Backups
- β° 28.3 Disaster Recovery
- β° 28.4 Graceful Shutdown
- β° 28.5 Fault Tolerance
- β° 28.6 Circuit Breakers
- β° 28.7 High Availability
- β° 28.8 Monitoring Production Systems
- β° 28.9 Incident Response
-
- β° 29 Project 1: Task Management API
- β° 29.1 Project Requirements
- β° 29.2 Project Structure
- β° 29.3 Database Design
- β° 29.4 CRUD Operations
- β° 29.5 Validation
-
- β° 30 Project 2: Authentication System
- β° 30.1 User Registration
- β° 30.2 JWT Authentication
- β° 30.3 Role-Based Authorization
- β° 30.4 Security Testing
-
- β° 31 Project 3: E-Commerce Backend
- β° 31.1 Architecture
- β° 31.2 User Management
- β° 31.3 Product Management
- β° 31.4 Categories
- β° 31.5 Shopping Cart
- β° 31.6 Orders
- β° 31.7 Inventory
- β° 31.8 Payments
- β° 31.9 Admin API
-
- β° 32 Final Project: Production Backend
- β° 32.1 Planning the Application
- β° 32.2 Designing the Architecture
- β° 32.3 Designing the Database
- β° 32.4 Building the REST API
- β° 32.5 Authentication and Authorization
- β° 32.6 PostgreSQL Integration
- β° 32.7 Redis Integration
- β° 32.8 Background Workers
- β° 32.9 File Storage
- β° 32.10 Dockerizing the Application
- β° 32.11 CI/CD Pipeline
- β° 32.12 Production Deployment
- β° 32.13 HTTPS and Domain Setup
- β° 32.14 Performance Optimization
- β° 32.15 Security Review
- β° 32.16 Documentation
-
- β° 33 Backend Developer Roadmap
- β° 33.1 What You Should Know Now
- β° 33.2 Building a Portfolio
- β° 33.3 Creating Backend Projects
- β° 33.4 Contributing to Open Source
- β° 33.5 Preparing for Backend Interviews
- β° 33.6 Backend Interview Questions
- β° 33.7 Database Interview Questions
- β° 33.8 API Interview Questions
- β° 33.9 Linux and Docker Interview Questions
- β° 33.10 Where to Go Next
-
KAHIBARO