After years of working with various backend frameworks across different projects, I found myself repeatedly solving the same problems: how to properly structure business logic, ensure traceability across distributed systems, handle errors gracefully, and maintain type safety throughout the entire stack.
The Problem with Existing Solutions
Most backend frameworks either:
- Are too opinionated about your architecture
- Require too much boilerplate for common tasks
- Don’t provide enough guidance for structuring business logic
- Lack built-in support for modern deployment patterns (edge, serverless, containers)
Enter PURISTA
PURISTA was born from the idea that developers should focus on what matters most: business logic. Everything else should be handled automatically or with minimal configuration.
Key Design Principles
- Business Logic First: Your domain logic is the star of the show. Framework concerns stay out of the way.
- Automatic Traceability: Every request gets a unique trace ID that flows through the entire system.
- Type Safety: Full TypeScript support from API to database.
- Flexible Deployment: Run on edge devices, in containers, or as serverless functions.
Architecture Overview
PURISTA uses an event-driven architecture built on top of typed message queues. Services communicate through well-defined contracts, making the system inherently decoupled and testable.
flowchart LR
Client[Client] -->|HTTP/REST| Gateway[API Gateway]
Gateway -->|Command| ServiceA[Service A]
Gateway -->|Query| ServiceB[Service B]
ServiceA -->|Event| MessageBus[Message Bus]
ServiceB -->|Event| MessageBus
MessageBus -->|Subscribe| ServiceA
MessageBus -->|Subscribe| ServiceB
ServiceA -->|Store| DB1[(Database)]
ServiceB -->|Store| DB2[(Database)]
// A simple service definition
export const userService = new ServiceBuilder('user')
.addCommandSchema('createUser', createUserSchema)
.addQuerySchema('getUser', getUserSchema)
.build()
Real-World Usage
I’ve used PURISTA in production for multiple client projects, including the Postmaster platform. The framework has proven its value in handling complex business workflows while maintaining clean, testable code.
Getting Started
If you’re interested in trying PURISTA, head over to purista.dev for documentation and examples. The project is open source and contributions are welcome!