Threax Hypermedia Framework and Architecture

These pages describe how the Threax Hypermedia Framework and Architecture works. The framework is implemented in C# with ASP.Net Core and runs on Windows, Linux and Mac OS. However, the architectural concepts work in any language.

Goals

  • Single source of user identity management so individual apps and apis do not have to deal with users.
    • Handle different user types, such as a human and application user as the same type.
  • All logic that any system can perform is put behind a rest api powered by HATEOAS.
    • This provides an abstraction of business logic from UI where UI can be a website, a mobile app, a job task or really anything else.
    • HATEOAS (Hypermedia As The Engine Of Application State) is used to inform the client of what actions can be taken.
  • Use the highest possible level of automation.
    • Where possible generate edit uis, tables, api client definitions etc.
    • Provide tools to generate a useful starting point for each piece of data.
    • Deployment automation that can manage released versions of our software and do any building that is nessecery.
  • Have maintainable client side as well as server side code by using languages with strong types.
  • Be as async as possible for speed.
  • Scale from small apps with a few records to large apps with millions of them.