Netpress Laravel-inspired backend framework for Node.js
Frameworkv0.1.14 Starterv0.1.12 Docsv1.0.3
Overview Installation Architecture CLI
Examples

Mail + Queue Example

Mail and queues are a good example of Netpress lazy loading.

You can keep the request fast, dispatch a job, and let the worker handle the slower side effect.

Job

// app/Jobs/SendWelcomeEmailJob.js
import { BaseJob } from '@admicaa/netpress';
import WelcomeMail from '../Mail/WelcomeMail.js';

export default class SendWelcomeEmailJob extends BaseJob {
  static get queue() {
    return 'emails';
  }

  async handle({ user }) {
    await new WelcomeMail(user).send(user.email);
  }
}

Trigger It From A Service

import User from "../Models/User.js";
import SendWelcomeEmailJob from '../Jobs/SendWelcomeEmailJob.js';

export default class RegistrationService {
  static async register(payload) {
    const user = await User.create(payload);
    await SendWelcomeEmailJob.dispatch({ user });
    return user;
  }
}

Run The Worker

npm run artisan -- queue:work --queue=emails

Why This Pattern Matters

  • the HTTP request stays fast
  • the email side effect becomes retryable
  • queue infrastructure only boots when you actually use it