# Core concept

Liteflow framework lets you organize different processes and services within an application.

An application is based on one or multiple processes that describe a specific feature in an application.

Processes are event-based, meaning that the steps that this process triggers are based on an event from a specific service.

Processes let you connect multiple services and execute a series of tasks when an event occurs.

Example: A process that listens for an event of Service A and triggers Service B and Service C only when some data match specific criteria.

# Process

Processes are nondeterministic finite state machines that perform state transition when matching events or a task's results occur but don't support the cycle.

A process is a list of steps that describes a specific business logic.

A step can be one of the following:

The first step of a process is the only step which must be either an event or a task's result trigger.

TIP

Processes can be graphically represented as a UML activity diagram with actions and conditions but without cycles and concurrency. Graphic representation is an excellent first step to conceptualize an application before implementing it.

# Service

A Service is a component of an application that can be reused and providing a list of tasks.

Any logic can be created with services, regardless of its complexity.

They communicate directly with the MESG Engine and expose their tasks through a service definition file.

Each service runs in its Docker environment with a dedicated network between the service and its dependencies.