Write faster and better Java applications with Pronghorn, a staged event-driven, single-machine Actor framework.
Pronghorn is a pragmatic approach to the event-driven Actor model. It allows for concurrent and efficient communication between multiple actors using predefined messages.
Built from the ground up with performance in mind, Pronghorn produces as little garbage as possible while allowing you to write correct code securely through the use of schemas as contracts and industry-leading encryption.
It easily integrates with common testing frameworks and simplifies refactoring and debugging through its automatically generated and live-updating telemetry graph and warnings when actors are misbehaving.
Write more performant, secure, and maintainable code using Pronghorn.
- Pronghorn uses a compact subset of Java for performance.
Simple Concurrency Model
- Quickly write correct code with actors, and easily leverage hundreds of cores through the automatic scheduler.
Separation of Design
- Smart scheduler does not schedule actors that do not have work, and the scheduler can be customized and extended.
Simplified Debugging and Refactoring
- The included test framework supports automated regression test construction for refactoring. Use the built-in live telemetry of your application to figure out strengths and weaknesses of your design.
Static Memory Allocations
- Pronghorn is almost completely garbage-free. This is partially accomplished by using static memory allocations. There’s no need to release memory and no garbage collector slowing down your application.
- Use low- and high-level APIs for reading from pipes when needed, and replay messages if required.
Copy Over Locks
- Pronghorn enables efficient power usage through never-stalling cores while allowing continuous progress. It also enables efficient NUMA usage.
Sequential Memory Usage
- Pronghorn has immediate and persistent startup with non-volatile memory. It leverages CPU prefetch and caches for fastest possible throughput, and it's mechanically sympathetic.
- Easily involve non-technical people in the early stages of your development cycles through the use of automatically generated telemetry.
Minimized Deployed Application
- For embedded systems, only the needed applications and interfaces are deployed, reducing attack vectors and making your binary smaller. Pronghorn also scales well in docker and cloud deployments, and configuration is always performed at compile-time.