DEEP Framework is a nodejs package that is published on npmjs: https://www.npmjs.com/package/deep-framework.
In fact, this framework is a collection of nodejs packages, also identifiable as abstracted libraries:
DEEP Framework | API Docs | Abstracted Web Service(s) |
---|---|---|
deep-asset | Assets Management Library | Amazon S3 |
deep-cache | Cache Management Library | Amazon ElastiCache |
deep-core | Core Management Library | - |
deep-db | Database Management Library | Amazon DynamoDB, Amazon SQS |
deep-di | Dependency Injection Management Library | - |
deep-event | Events Management Library | Amazon Kinesis |
deep-fs | File System Management Library | Amazon S3 |
deep-kernel | Kernel Management Library | - |
deep-log | Logs Management Library | Amazon CloudWatch Logs |
deep-notification | Notifications Management Library | Amazon SNS |
deep-resource | Resouces Management Library | AWS Lambda, Amazon API Gateway |
deep-security | Security Management Library | AWS IAM, Amazon Cognito |
deep-validation | Validation Management Library | - |
Each DEEP framework module except the basis (deep-core
) uses deep-kernel
and deep-di
.
deep-kernel
enforces each module to extend a Kernel.ContainerAware
abstract class
that is loaded in runtime into a service.
deep-kernel
transforms each module into a service (ex.deep-db
asdb
,deep-log
aslogs
etc.)
Kernel.ContainerAware
makes possible you to bind a microservice instance using .bind(microserviceObject)
method.
Be aware- a service action that requires a
microservice
would throw an error if it is missing
import deep-framework from 'deep-framework';
DeepFramework.Kernel.bootstrap((kernel) => {
// your application was initialized
let fs = kernel.get('fs'); // deep-fs service
let asset = kernel.get('asset'); // deep-asset service
let helloWorldMicroservice = kernel.microservice('deep.microservices.helloworld'); // microservice instance
let currentMicroservice = kernel.microservice(); // current microservice instance
let iconPath = asset.locate('@deep.microservices.helloworld:images/icon.png');
});
Note that mainly all the services implements
path resolving feature
:'@xxxx:yyyy'
wherexxxx
is the microservice identifier andyyyy
is some service specific descriptor