
Security News
Vite Releases Technical Preview of Rolldown-Vite, a Rust-Based Bundler
Vite releases Rolldown-Vite, a Rust-based bundler preview offering faster builds and lower memory usage as a drop-in replacement for Vite.
chrono-forge
Advanced tools
A comprehensive framework for building resilient Temporal workflows, advanced state management, and real-time streaming activities in TypeScript. Designed for a seamless developer experience with powerful abstractions, dynamic orchestration, and full cont
Temporal-Forge supercharges Temporal.io workflows by eliminating boilerplate, automating state management, and enabling seamless hierarchical orchestration.
Temporal-Forge simplifies workflow design using decorators like @Step()
, @Query()
, and @Signal()
to define workflow logic.
@Before()
, @After()
, @Hook()
)Stateful workflows handle complex entity relationships with automatic state tracking.
β Automatic child workflow execution & cancellation
β Parent workflows automatically sync child state changes
β Limitless nesting of parent-child workflows
π‘ How it Works? β Each workflow subscribes to only the data it cares about.
If an entity updates, only dependent workflows receive updates, ensuring low-latency state propagation.
State is structured using normalizr
, ensuring efficient, normalized entity management.
β Automatically flattens nested relationships
β StateManager & limitRecursion cache queries to optimize lookups
β Denormalization is fully cached & optimized
No more manual child workflow managementβit just works.
npm install temporal-forge
or
yarn add temporal-forge
π§ Requirements:
import { Temporal, Workflow } from 'temporal-forge';
@Temporal()
class SimpleWorkflow extends Workflow {
async execute() {
this.log.info('Executing workflow...');
}
}
export default SimpleWorkflow;
// Your types
type User = {
id: string;
likes: Like[];
};
type Like = {
id: string;
user: User;
};
import { Temporal, StatefulWorkflow, SchemaManagerStatefulWorkflowParams, StatefulWorkflowOptions } from 'temporal-forge';
@Temporal({
schemaName: "User",
schemas: SchemaManager.schemas
})
class UserWorkflow extends StatefulWorkflow<
StatefulWorkflowParams<User>,
StatefulWorkflowOptions
> {
@Property({ path: 'likes' })
protected likes!: Like[];
async execute() {
this.log.info('Executing workflow, all children in this.likes will have been auto started...');
}
}
export default UserWorkflow;
// Set your schemas (usually done in src/schemas.ts)
SchemaManager.parseYAML(`
User:
idAttribute: id
likes: [Like]
Like:
idAttribute: id
user: User
`);
π‘ This workflow automatically normalizes state and updates subscribers whenever data is changed!
π Read the full docs:
β Step-Based Execution β Define steps using @Step()
β Workflow Lifecycle Management β Manage workflow execution state
β Query & Signal Handling β Real-time data retrieval and updates
β Automatic Retry & Error Handling β Decorators like @OnError()
simplify failure recovery
π Full API reference available in docs/API.md
Temporal-Forge includes a comprehensive test suite:
π‘ Run tests locally:
npm run test
π We welcome contributions! Whether it's bug fixes, feature requests, or documentation improvementsβjoin the project and help make Temporal-Forge even better.
π See CONTRIBUTING.md for details.
MIT License β See the LICENSE file for more details.
FAQs
A comprehensive framework for building resilient Temporal workflows, advanced state management, and real-time streaming activities in TypeScript. Designed for a seamless developer experience with powerful abstractions, dynamic orchestration, and full cont
The npm package chrono-forge receives a total of 417 weekly downloads. As such, chrono-forge popularity was classified as not popular.
We found that chrono-forge demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago.Β It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Vite releases Rolldown-Vite, a Rust-based bundler preview offering faster builds and lower memory usage as a drop-in replacement for Vite.
Research
Security News
A malicious npm typosquat uses remote commands to silently delete entire project directories after a single mistyped install.
Research
Security News
Malicious PyPI package semantic-types steals Solana private keys via transitive dependency installs using monkey patching and blockchain exfiltration.