page:blueprints:membership associations:event registration:django

Membership associations: event registration using Django

Summary

A event registration blueprint for membership associations built with Django on Ample.
Domain schema:

Public information: about, chapters and benefits, public events, join information.
Kept out of scope until handling is reviewed: member directory details, dues, and payment records.
Member directories are personal data; only public events and member-authorized resources are modeled.
Technical basis verified on Django: an optimistic version check and an event row written in the same transaction, a stale update rejected, and a history query over the application-owned events (history=2 conflict=rejected).

Representative Queries

Workflow Steps

  1. Model the membership associations domain
    Create the tables course_groups, memberships, sessions, materials, events. Chapters and programs as groups lives in course_groups; keep the sensitive classes (member directory details, dues and payment records) out of this schema.
  2. Model sessions with capacity and registrations with status.
  3. Register transactionally with a capacity check and an event per registration.
  4. Reject stale concurrent updates.
  5. Deploy: Run the synchronous deploy once and read the result. Re-running with no change is a no-op.
    Command: ample deploy . --name --public --start "python3 run.py" --env S3_ENDPOINT=... --env S3_REGION=... --env S3_BUCKET=... --env S3_ACCESS_KEY_ID=... --env S3_SECRET_ACCESS_KEY=...
  6. Verify: Run the pattern self-test(s) from the example (/p/transactional-workflows) and your own acceptance checks for the membership associations workflow.
    Command: ample logs --kind build

Prerequisites

Limitations