LEVEL 14 · ZUDOJS
Course Advanced
ZudoJS advanced systems
Events, messages and CQRS, queues and schedulers, serialization, RPC and API operations, adapters, plugins, feature flags and tenancy, then testing, logging, observability and documentation infrastructure.
0 of 15 lessons done
When you finish, you can
- Decouple features with events and messages
- Separate commands from queries
- Move slow work to queues and run work on a schedule
- Serialize values across services and call them with RPC
- Hide external systems behind adapters and extend an app with plugins
- Roll out features gradually and isolate tenants
- Test, log, trace and measure a ZudoJS application
You build: An event-driven, observable Task API with background jobs and feature flags
MODULE 1
Events, messages and CQRS
- 1EventsAnnounce that something happened and let other parts of the Task API react, without the code that announces it knowing who listens. Handlers, wildcards, priorities, dispatch modes, middleware and handler errors with @zudojs/events.40 min
- 2MessagingAsk another part of the Task API to do something and get an answer back, without importing it. Messages, handlers, middleware, correlation and causation ids, timeouts and cancellation with @zudojs/messaging.35 min
- 3Commands and queries (CQRS)Split the Task API's operations into commands that change data and queries that only read it. Command and query buses, handlers, middleware, execution context, results, and when CQRS is worth it, with @zudojs/cqrs.40 min
MODULE 2
Background work
- 4Background jobsMove slow and unreliable work out of the request and into a job queue. Queues, jobs, processors, workers, concurrency, retries with exponential backoff, delayed jobs, dead letters and graceful shutdown with @zudojs/queue.45 min
- 5Scheduled tasksRun work on the clock, not on a request. Intervals, one-off runs and cron expressions, time zones, retries and failed runs, overlapping runs, restarts, and running a schedule on one instance only, with @zudojs/scheduler.40 min
MODULE 3
Services and contracts
- 6SerializationTurn values into text and back without losing what they were. See exactly what plain JSON loses, keep Dates, BigInts, Maps, Sets, bytes and Errors with @zudojs/serialization, add your own types, read untrusted input safely, and version your payloads with envelopes.35 min
- 7Calling services with RPCCall a function that runs in another service as if it were local. Define procedures with @zudojs/rpc, call them through a client and a transport, and handle validation, errors, identity, timeouts and retries.45 min
- 8One operation, many transportsWrite your business logic once as an operation with @zudojs/api, then run it from HTTP, RPC and a queue with the same validation, errors, interceptors and timeouts.45 min
- 9OpenAPI documentsDescribe the Task API in an OpenAPI document with @zudojs/openapi. Turn your schemas into components, choose between OpenAPI 3.0 and 3.1, validate the document, save it as JSON or YAML, and serve a documentation page.40 min
MODULE 4
Quality and insight
- 10Testing a ZudoJS appTest the Task API with Vitest and @zudojs/testing. Control time with a test clock, replace services with mocks and recording buses, wire fakes through a test container, clean up in the right order, and run integration tests against a real HTTP server.Core45 min
- 11Structured loggingReplace console.log with structured log entries that a program can search. Levels, child loggers, request ids, request and error logging, secret redaction and JSON logs for production with @zudojs/logger.40 min
- 12ObservabilitySee inside a running Task API. Metrics count what happens, traces show where the time goes, and logs, metrics and traces share one trace id across requests and services, with @zudojs/observability.Production45 min
MODULE 5
Platform
- 13Feature flagsTurn features on and off without deploying. Rules, evaluation context, percentage rollouts, A/B variants, kill switches and browser snapshots with @zudojs/feature-flags.40 min
- 14Multi-tenancyServe many companies from one Task API without ever mixing their data. Tenant ids, resolvers and trust levels, resolver chains, AsyncLocalStorage context and tenant-scoped queries with @zudojs/tenancy.45 min
- 15PluginsLet other code extend the Task API without editing it. Write plugins, declare dependencies, run their lifecycle, give each one a scoped context, roll back failed starts, read diagnostics and publish a plugin to npm with @zudojs/plugins.45 min
Course checkpoint
Prove you can move on. The checkpoint picks 20 questions at random from every lesson in this course. Get 16 right to pass. Your result is saved in this browser only.