About this course
Design and build server-side applications and well-structured APIs that power web and mobile clients, with attention to layered architecture, polyglot data modeling, secure authentication, asynchronous workloads, and production observability.
Teams build a complete back-end service for a chosen domain, progressing from a basic CRUD REST API and relational data model to a full platform with GraphQL, secure JWT authentication and RBAC authorization, a Redis caching layer, asynchronous job processing with BullMQ, real-time communication over Socket.io, and demonstrated horizontal-scaling behavior under load.
Expected outcomes
- Design layered back-end systems with clear separation of concerns, applying N-tier architecture and evaluating monolith-versus-microservices trade-offs for a given team and deployment context.
- Build and document APIs using REST resource semantics and HTTP verb contracts with OpenAPI, and GraphQL schema-first design with DataLoader for N+1 prevention; select the right paradigm for each workload.
- Model and query relational and document data using an ORM and migrations, and tune slow queries through index design and EXPLAIN-plan analysis in PostgreSQL.
- Implement JWT-based authentication with OAuth2 Authorization Code + PKCE flow and OIDC claims mapping, and enforce role-based access control in the service layer.
- Design asynchronous workloads with background job queues, deliver real-time events over WebSocket and SSE channels, and manage connection pools and back-pressure under load.
- Instrument services with structured logging, distributed tracing, and RED metrics using OpenTelemetry, and select the appropriate data store (PostgreSQL, MongoDB, Redis) for each feature's access patterns.
Key topics
- REST & GraphQL APIs
- Polyglot persistence
- Authentication & authorization
- Async processing & real-time
- Observability & scaling
Theoretical foundations
The concepts and results this course rests on.
- N-tier and layered architecture: presentation, application, and data layers; separation of concerns (P1)
- Monolith versus microservices trade-offs: deployment complexity, network latency, data isolation, and team topology (P2)
- API design paradigms and contracts: REST resource naming, HTTP verb semantics, versioning, idempotency, and error bodies; GraphQL schema-first design, resolvers, DataLoader for N+1 prevention, and subscriptions for push-based data (P3)
- Polyglot persistence and data-store selection: relational, document, key-value, graph, and time-series stores, and selection criteria for each workload's data shape and access patterns (P4)
- ORM abstraction and the data-access layer: schema migrations, eager vs lazy loading, and the N+1 query problem (P5)
- Database indexing and query planning: B-tree, composite, and covering indexes; EXPLAIN plans and cardinality estimation (P6)
- Business logic, authentication, and domain invariants: input sanitization and error contracts; OAuth2 Authorization Code + PKCE flow, refresh-token rotation, JWKS endpoint verification, and OIDC claims mapping for delegated identity (P7)
- Asynchronous processing and real-time communication: background job queues, workers, retry semantics, idempotent handlers, and dead-letter queues; WebSocket full-duplex protocol (heartbeat, reconnect, presence channels) and SSE for server-push streaming (P8)
- Connection pool management and back-end concurrency: pool sizing, thread vs event-loop models, and back-pressure (P9)
- Back-end observability: structured logging, distributed tracing, RED metrics (rate, error, duration), and alerting (P10)
Prerequisites
Course-specific prerequisites:
- Databases
- Computer networks
- Software engineering and a server-side language
Weekly schedule 13 weeks · lecture + practice
Students use AI assistants to generate REST and GraphQL handlers, refactor resolvers, and draft normalized SQL schemas with sensible indexes and migrations. They prompt tools to write contract and integration tests, seed realistic data, and scaffold BullMQ job workers, while connecting agents to database and API MCP servers to inspect query plans and propose tuning. AI helps reason about caching and invalidation strategies, draft JWT and RBAC rules, and generate OpenTelemetry instrumentation boilerplate, which students then probe for authorization gaps and coverage blind spots. Every generated query and auth rule is reviewed, since a plausible-looking AI suggestion can leak data, skip a queue retry, or trigger an N+1 performance cliff.
Student project
Teams build a complete back-end service for a chosen domain, progressing from a basic CRUD REST API and relational data model to a full platform with GraphQL, secure JWT authentication and RBAC authorization, a Redis caching layer, asynchronous job processing, real-time event delivery, and demonstrated horizontal-scaling behavior under load. Each increment is validated with automated and contract tests and presented at one of three milestones.
Requirements
- Build a working system, not a set of disconnected exercises.
- Be original: a new system that solves a real problem, not a re-implementation of a tutorial or course demo.
- Show real depth: real data, real users or realistic load, and engineering trade-offs that are measured rather than assumed.
- Carry one running project from specification to a deployed, defensible result across the whole term.
- Work in a team of three or four and defend the design at each of the three presentations (weeks 5, 8, and 13).
Example projects
Assessment & grading
Grading is project-based, with no written exam. Teams of three or four present one running project three times.
| Component | What it covers | Weight |
|---|---|---|
| Project · Specification | Presentation 1 (week 5): problem, objectives, and architecture | 20% |
| Project · Interim | Presentation 2 (week 8): the working system demonstrated live | 30% |
| Project · Final | Presentation 3 (week 13): end-to-end demo with oral defense | 50% |
Tools & platforms
- Node.js (Fastify / Express): implement back-end services and HTTP route handlers
- Apollo Server: serve a GraphQL API with schema-first design, resolvers, and DataLoader
- PostgreSQL: store relational data with ACID transactions, indexes, and EXPLAIN-plan analysis
- MongoDB: store document-shaped data for workloads where a flexible schema fits the access pattern
- Redis: cache responses, manage session data, and serve key-value lookups at low latency
- BullMQ: run background jobs with retry semantics, idempotent handlers, and dead-letter queues
- Prisma: model the database schema, manage migrations, and query the data-access layer
- OpenAPI / Swagger UI: document and validate REST contracts with an interactive specification
- Socket.io: deliver real-time events to clients over WebSocket connections with heartbeat and reconnect
- OpenTelemetry: instrument services with structured logs, distributed traces, and RED metrics
Free online courses
Existing free, video-based courses this course can build on, for self-study or as a teaching basis.
- YouTubeNode.js and Express Back End Development (8-Hour Course)
- UniversityFull Stack Open: Deep Dive Into Modern Web Development
In Hebrew · בעברית
Primary literature
Seminal works for advanced study.
- PaperArchitectural Styles and the Design of Network-based Software Architectures
- PaperA Relational Model of Data for Large Shared Data Banks
- PaperRFC 9110: HTTP Semantics
- PaperRFC 6749: The OAuth 2.0 Authorization Framework
- PaperRFC 7519: JSON Web Token (JWT)
- PaperDynamo: Amazon's Highly Available Key-value Store
References
Books and resources link to an online or publisher page.
- TextbookRESTful Web APIs: Services for a Changing World
- TextbookLearning GraphQL: Declarative Data Fetching for Modern Web Apps
- TextbookDesigning Data-Intensive Applications
- TextbookDatabase System Concepts, 7th Edition
- DocumentationOpenID Connect Core 1.0
- DocumentationGraphQL Documentation (Learn)
- DocumentationPostgreSQL Documentation
- DocumentationRedis Documentation
Role in each concentration
| Concentration | Role |
|---|---|
| Intelligent Software Systems | Core · Semester 2 |
| Networking & Cyber Security | Elective |
| AI & Robotics | Elective |
| AI and Quantum Computing for Finance | Elective |
| Immersive Systems & Game Development | Elective |
| Defense Technologies & Autonomous Systems | Elective |