...
How is FacetScript Implemented
FacetScript implementation within TQLEngine is best understood if we understand the message processing flow within TQLEngine.
Message Processing Flow
The Atomiton TQLEngine architecture is a Scalable Event-Driven Architecture which uses a high performance NIO-based communication framework that provide low level asynchronous socket communications. Message processing flow steps are:
- A data structure called Facet Instance is associated with each incoming request. Each facet instance is identified by its facet ID and represents a capability to perform certain actions on the engine.
- Incoming requests without valid facet IDs are rejected. Each facet instance is also associated with its Facet Type which is a piece of executable code (a Java class) intended to actually process the request
...
- Once request legitimacy is established by successful resolution of its facet ID, a processing
...
- pipeline is created for low level request processing. This includes protocol handling, data decoding/encoding and initial data transformation and normalization.
- Once request data is presented in a universal fashion (as an instance of ListMap data structure), engine invokes appropriate facet type method using current connection context and facet instance information as arguments.
When to use FacetScript
Using FacetScript is optional and completely dependent on the developer role. For example, if you are a business analyst responsible for only writing simple TQL queries then using FacetScript is optional.
...