Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Nexus – Keeps track of Services and their Resources. Proxies requests between Services.
  • Core – Manages People, Events and Involvement between them.
  • Involvement Services
    • Programme – Manages scheduled event programme via Schedules, Schedule Views, Schedule View Blocks, Venues, Rooms and Programmes
    • LabourManages event volunteers via Job Categories, Signups etc.
    • Signup – The simplest possible type of involvement, a free-of-cost sign up with some extra information. Manages Signups.
    • Commerce – Manages paid-for tickets via OrdersProducts etc.
  • Support Services
    • Badges – Manages Badges and admittance lists
    • External Auth – Synchronizes users and groups to an external service, namely IPA, for consumption by legacy applications
    • Mailings – Used to send mass e-mail Messages on grounds of an Involvement

 

Anatomy of a Service

Resources

A Service declares Resources which are persisted into a database.

Basic REST methods are provided for all Resources:

  • GET /resource (list, search)
  • GET /resource/:id (retrieve)
  • POST /resource (create)
  • PUT /resource/:id (update)
  • DELETE /resource/:id (remove)

Resources are versioned. An attempt to PUT a stale Resource will fail.

Local and remote Resources offer an identical API to the programmer. Under the hood local Resources are persisted directly and remote Resources are käpisteld via REST. (warning) Should all Resources be treated as Remote, and should we delegate talking to the database to the Nexus?

Core

Involvement – Connects a Person to an Entity. Further information about the nature of the Involvement is managed by an Involvement Service.

...