@purista/core
v3.2.0
Published
purista backend framework
Readme
PURISTA
A backend framework for building message based domain services.
This framework adapts and combines a wide range of different patters from domain driven design, cqrs, microservice, event sourcing and lambda functions.
It is build from ground up in typescript and highly focuses on schema, and auto generation of types, input-output-validation, OpenApi documentation (swagger).
Why to use PURISTA
PURISTA tries to avoid the need for implementing boilerplate code as much as possible and to automate and autogenerate types, definitions, documentation when ever possible.
Schema and input-output-validation are deeply integrated, and they should be used whenever possible to build robust, stable systems.
PURISTA addresses developers which want to simply focus on implementation, while providing them the necessary things to use the great node/typescript tooling.
Features
- typescript based and with typescript in mind
- mostly async-await (no call-back hell)
- easy versioning of services & API
- modular & extendable
- runs and scales from small single instance up to cloud clusters
- flexible to trace, audit and monitor
- easy to test with ready to go mocks & stubs
- clean error handling
- low learning curve
- queue-backed agents as a core primitive, backed by
@purista/harness
The main goal is to let developers keep focusing on solving business requirements while building robust & maintainable software fast and efficient.
Agents
@purista/core includes agent builders and testing helpers. Agents attach to normal PURISTA services and expand into queue, queue worker, command, and stream definitions so model-driven work runs through the same runtime boundaries as other business logic.
Core is provider-neutral. Applications bind live model providers at runtime with provider packages such as @purista/harness-openai; tests can use createAgentTestHarness(...), createScriptedHarnessModel(...), and createAgentSkillTestRuntime(...) from @purista/core/testing.
Visit purista.dev
Follow on Twitter @purista_js
Join the Discord Chat
