
Unlock the future of scalable software development
Introducing NPL: The programming language that builds secure network services
NPL: A new era of programming for networked services
NOUMENA Protocol Language, or NPL, is the only language where authorization is a first-class citizen, ensuring security and compliance are fundamental to every application.
-1.png?width=2000&height=1502&name=smart%20protocol%20(1)-1.png)
AUTHORIZATION AS A FIRST-CLASS CITIZEN
Stop sharing data with unauthorized parties
- Every line of code in NPL is explicitly authorized
- Security and compliance are integral to the development process
- Eliminate data leakage risks and maintain control over who accesses what
Transfer.npl
1 @api
2 protocol[bank, emitter, recipient] Transfer(
3 var from: Account,
4 var to: Account,
5 var amount: Number
6 ) {
7
8 @api
9 permission[bank] startKycCheck(
10 level: KycCheckLevel
11 ) returns KycDocuments | requested {
Transfer.npl
60 permission[bank] deterministicFailure() {
61 // will be rolled back on failure, not persisted
62 this.doSomethingElseEntirely[bank]();
63
64 // will not be persisted
65 this.amount = this.amount * 1000;
66
67 // will cause a failure and rollback the entire transaction
68 1 / 0;
69 };
70
71 permission[bank] deterministicSuccess() {
72 // will be persisted at the end of the user action
73 this.doSomethingElseEntirely[bank]();
74
75 // will be persisted at the end of the user action
76 this.amount = this.amount * 1000;
77
78 notify SuccessfulTransaction(this);
79 };
TRANSACTIONAL AND DETERMINISTIC LANGUAGE
Say goodbye to partial transactions
- NPL ensures atomic transactions
- Avoid the risk of data corruption from improperly scoped transactions
- Simplify complex workflows with predictable outcomes for every operation
DOMAIN-DRIVEN DESIGN
Let your code focus on real business logic
- NOUMENA handles the complexities of non-functional requirements
- Model your functional requirements directly
- Move beyond CRUD and implement logic like time-bound rules and explicit authorizations

Transfer.npl
23 initial state requested
24 state kyc_check
25 state clearing
26 state settling
27 final state booked
28 final state rejected
29
30 @api permission[bank] clear() | clearing { become settling; };
31 @api permission[bank] settle() | settling { become booked; };
32 @api permission[bank] reject() | kyc_check, clearing, settling { become rejected; };
33
34 @api
35 permission[bank] startKycCheck(
36 level: KycCheckLevel
37 ) returns KycDocuments | requested {
FINITE STATE MACHINES
Eliminate the complexity of manual state management
- NPL provides finite state machines that enforce valid actions, out-of-the-box
- Clearly defined states and transitions simplify workflow management
- Built-in state control enables easy regulatory compliance
AUTOMATED APIS
Stop wasting time on API development and integration
- Applications automatically expose domain-specific REST APIs
- Every API includes an OpenAPI spec for simple integration
- Eliminate risk of misconfigurations and exploitable errors

audit.sh
1 curl -s -N \
2 -H "Authorization: Bearer $ACCESS_TOKEN" \
3 http://engine:12000/api/streams \
4 | awk 'BEGIN { RS=""; ORS="\n\n" } !/event:tick/'
AUTOMATED AUDIT TRAILS
No more worrying about compliance audits
- Every action is logged, traceable, and queryable via APIs
- Avoid the risk of partial data corruption
- Simplify complex workflows with predictable outcomes for every operation
PERSONAL DATA AND ANONYMIZATION
Effortlessly comply with data privacy regulations
- Users control their own data with explicit ownership
- Built-in anonymization supports regulatory requirements like GDPR and CCPA
- Ensure privacy while maintaining data integrity
Reliable, scalable, transactional execution with NOUMENA Runtime
Run NPL applications with NOUMENA Runtime — your platform for secure, transactional execution that ensures high performance, scalability, and built-in compliance across enterprise systems.