diff --git a/lib-opensource/emqx_rule_engine/.gitignore b/apps/emqx_rule_engine/.gitignore similarity index 100% rename from lib-opensource/emqx_rule_engine/.gitignore rename to apps/emqx_rule_engine/.gitignore diff --git a/lib-opensource/emqx_rule_engine/README.md b/apps/emqx_rule_engine/README.md similarity index 100% rename from lib-opensource/emqx_rule_engine/README.md rename to apps/emqx_rule_engine/README.md diff --git a/lib-opensource/emqx_rule_engine/docs/api_examples.md b/apps/emqx_rule_engine/docs/api_examples.md similarity index 100% rename from lib-opensource/emqx_rule_engine/docs/api_examples.md rename to apps/emqx_rule_engine/docs/api_examples.md diff --git a/lib-opensource/emqx_rule_engine/docs/cli_examples.md b/apps/emqx_rule_engine/docs/cli_examples.md similarity index 100% rename from lib-opensource/emqx_rule_engine/docs/cli_examples.md rename to apps/emqx_rule_engine/docs/cli_examples.md diff --git a/lib-opensource/emqx_rule_engine/docs/design.md b/apps/emqx_rule_engine/docs/design.md similarity index 100% rename from lib-opensource/emqx_rule_engine/docs/design.md rename to apps/emqx_rule_engine/docs/design.md diff --git a/lib-opensource/emqx_rule_engine/etc/emqx_rule_engine.conf b/apps/emqx_rule_engine/etc/emqx_rule_engine.conf similarity index 100% rename from lib-opensource/emqx_rule_engine/etc/emqx_rule_engine.conf rename to apps/emqx_rule_engine/etc/emqx_rule_engine.conf diff --git a/lib-opensource/emqx_rule_engine/include/rule_actions.hrl b/apps/emqx_rule_engine/include/rule_actions.hrl similarity index 100% rename from lib-opensource/emqx_rule_engine/include/rule_actions.hrl rename to apps/emqx_rule_engine/include/rule_actions.hrl diff --git a/lib-opensource/emqx_rule_engine/include/rule_engine.hrl b/apps/emqx_rule_engine/include/rule_engine.hrl similarity index 100% rename from lib-opensource/emqx_rule_engine/include/rule_engine.hrl rename to apps/emqx_rule_engine/include/rule_engine.hrl diff --git a/lib-opensource/emqx_rule_engine/priv/emqx_rule_engine.schema b/apps/emqx_rule_engine/priv/emqx_rule_engine.schema similarity index 100% rename from lib-opensource/emqx_rule_engine/priv/emqx_rule_engine.schema rename to apps/emqx_rule_engine/priv/emqx_rule_engine.schema diff --git a/lib-opensource/emqx_rule_engine/rebar.config b/apps/emqx_rule_engine/rebar.config similarity index 100% rename from lib-opensource/emqx_rule_engine/rebar.config rename to apps/emqx_rule_engine/rebar.config diff --git a/lib-opensource/emqx_rule_engine/src/emqx_rule_actions.erl b/apps/emqx_rule_engine/src/emqx_rule_actions.erl similarity index 100% rename from lib-opensource/emqx_rule_engine/src/emqx_rule_actions.erl rename to apps/emqx_rule_engine/src/emqx_rule_actions.erl diff --git a/lib-opensource/emqx_rule_engine/src/emqx_rule_actions_trans.erl b/apps/emqx_rule_engine/src/emqx_rule_actions_trans.erl similarity index 100% rename from lib-opensource/emqx_rule_engine/src/emqx_rule_actions_trans.erl rename to apps/emqx_rule_engine/src/emqx_rule_actions_trans.erl diff --git a/lib-opensource/emqx_rule_engine/src/emqx_rule_engine.app.src b/apps/emqx_rule_engine/src/emqx_rule_engine.app.src similarity index 100% rename from lib-opensource/emqx_rule_engine/src/emqx_rule_engine.app.src rename to apps/emqx_rule_engine/src/emqx_rule_engine.app.src diff --git a/lib-opensource/emqx_rule_engine/src/emqx_rule_engine.erl b/apps/emqx_rule_engine/src/emqx_rule_engine.erl similarity index 100% rename from lib-opensource/emqx_rule_engine/src/emqx_rule_engine.erl rename to apps/emqx_rule_engine/src/emqx_rule_engine.erl diff --git a/lib-opensource/emqx_rule_engine/src/emqx_rule_engine_api.erl b/apps/emqx_rule_engine/src/emqx_rule_engine_api.erl similarity index 100% rename from lib-opensource/emqx_rule_engine/src/emqx_rule_engine_api.erl rename to apps/emqx_rule_engine/src/emqx_rule_engine_api.erl diff --git a/lib-opensource/emqx_rule_engine/src/emqx_rule_engine_app.erl b/apps/emqx_rule_engine/src/emqx_rule_engine_app.erl similarity index 100% rename from lib-opensource/emqx_rule_engine/src/emqx_rule_engine_app.erl rename to apps/emqx_rule_engine/src/emqx_rule_engine_app.erl diff --git a/lib-opensource/emqx_rule_engine/src/emqx_rule_engine_cli.erl b/apps/emqx_rule_engine/src/emqx_rule_engine_cli.erl similarity index 100% rename from lib-opensource/emqx_rule_engine/src/emqx_rule_engine_cli.erl rename to apps/emqx_rule_engine/src/emqx_rule_engine_cli.erl diff --git a/lib-opensource/emqx_rule_engine/src/emqx_rule_engine_sup.erl b/apps/emqx_rule_engine/src/emqx_rule_engine_sup.erl similarity index 100% rename from lib-opensource/emqx_rule_engine/src/emqx_rule_engine_sup.erl rename to apps/emqx_rule_engine/src/emqx_rule_engine_sup.erl diff --git a/lib-opensource/emqx_rule_engine/src/emqx_rule_events.erl b/apps/emqx_rule_engine/src/emqx_rule_events.erl similarity index 100% rename from lib-opensource/emqx_rule_engine/src/emqx_rule_events.erl rename to apps/emqx_rule_engine/src/emqx_rule_events.erl diff --git a/lib-opensource/emqx_rule_engine/src/emqx_rule_funcs.erl b/apps/emqx_rule_engine/src/emqx_rule_funcs.erl similarity index 100% rename from lib-opensource/emqx_rule_engine/src/emqx_rule_funcs.erl rename to apps/emqx_rule_engine/src/emqx_rule_funcs.erl diff --git a/lib-opensource/emqx_rule_engine/src/emqx_rule_id.erl b/apps/emqx_rule_engine/src/emqx_rule_id.erl similarity index 100% rename from lib-opensource/emqx_rule_engine/src/emqx_rule_id.erl rename to apps/emqx_rule_engine/src/emqx_rule_id.erl diff --git a/lib-opensource/emqx_rule_engine/src/emqx_rule_locker.erl b/apps/emqx_rule_engine/src/emqx_rule_locker.erl similarity index 100% rename from lib-opensource/emqx_rule_engine/src/emqx_rule_locker.erl rename to apps/emqx_rule_engine/src/emqx_rule_locker.erl diff --git a/lib-opensource/emqx_rule_engine/src/emqx_rule_maps.erl b/apps/emqx_rule_engine/src/emqx_rule_maps.erl similarity index 100% rename from lib-opensource/emqx_rule_engine/src/emqx_rule_maps.erl rename to apps/emqx_rule_engine/src/emqx_rule_maps.erl diff --git a/lib-opensource/emqx_rule_engine/src/emqx_rule_metrics.erl b/apps/emqx_rule_engine/src/emqx_rule_metrics.erl similarity index 100% rename from lib-opensource/emqx_rule_engine/src/emqx_rule_metrics.erl rename to apps/emqx_rule_engine/src/emqx_rule_metrics.erl diff --git a/lib-opensource/emqx_rule_engine/src/emqx_rule_registry.erl b/apps/emqx_rule_engine/src/emqx_rule_registry.erl similarity index 100% rename from lib-opensource/emqx_rule_engine/src/emqx_rule_registry.erl rename to apps/emqx_rule_engine/src/emqx_rule_registry.erl diff --git a/lib-opensource/emqx_rule_engine/src/emqx_rule_runtime.erl b/apps/emqx_rule_engine/src/emqx_rule_runtime.erl similarity index 100% rename from lib-opensource/emqx_rule_engine/src/emqx_rule_runtime.erl rename to apps/emqx_rule_engine/src/emqx_rule_runtime.erl diff --git a/lib-opensource/emqx_rule_engine/src/emqx_rule_sqlparser.erl b/apps/emqx_rule_engine/src/emqx_rule_sqlparser.erl similarity index 100% rename from lib-opensource/emqx_rule_engine/src/emqx_rule_sqlparser.erl rename to apps/emqx_rule_engine/src/emqx_rule_sqlparser.erl diff --git a/lib-opensource/emqx_rule_engine/src/emqx_rule_sqltester.erl b/apps/emqx_rule_engine/src/emqx_rule_sqltester.erl similarity index 100% rename from lib-opensource/emqx_rule_engine/src/emqx_rule_sqltester.erl rename to apps/emqx_rule_engine/src/emqx_rule_sqltester.erl diff --git a/lib-opensource/emqx_rule_engine/src/emqx_rule_utils.erl b/apps/emqx_rule_engine/src/emqx_rule_utils.erl similarity index 100% rename from lib-opensource/emqx_rule_engine/src/emqx_rule_utils.erl rename to apps/emqx_rule_engine/src/emqx_rule_utils.erl diff --git a/lib-opensource/emqx_rule_engine/src/emqx_rule_validator.erl b/apps/emqx_rule_engine/src/emqx_rule_validator.erl similarity index 100% rename from lib-opensource/emqx_rule_engine/src/emqx_rule_validator.erl rename to apps/emqx_rule_engine/src/emqx_rule_validator.erl diff --git a/lib-opensource/emqx_rule_engine/test/emqx_rule_engine_SUITE.erl b/apps/emqx_rule_engine/test/emqx_rule_engine_SUITE.erl similarity index 100% rename from lib-opensource/emqx_rule_engine/test/emqx_rule_engine_SUITE.erl rename to apps/emqx_rule_engine/test/emqx_rule_engine_SUITE.erl diff --git a/lib-opensource/emqx_rule_engine/test/emqx_rule_events_SUITE.erl b/apps/emqx_rule_engine/test/emqx_rule_events_SUITE.erl similarity index 100% rename from lib-opensource/emqx_rule_engine/test/emqx_rule_events_SUITE.erl rename to apps/emqx_rule_engine/test/emqx_rule_events_SUITE.erl diff --git a/lib-opensource/emqx_rule_engine/test/emqx_rule_funcs_SUITE.erl b/apps/emqx_rule_engine/test/emqx_rule_funcs_SUITE.erl similarity index 100% rename from lib-opensource/emqx_rule_engine/test/emqx_rule_funcs_SUITE.erl rename to apps/emqx_rule_engine/test/emqx_rule_funcs_SUITE.erl diff --git a/lib-opensource/emqx_rule_engine/test/emqx_rule_id_SUITE.erl b/apps/emqx_rule_engine/test/emqx_rule_id_SUITE.erl similarity index 100% rename from lib-opensource/emqx_rule_engine/test/emqx_rule_id_SUITE.erl rename to apps/emqx_rule_engine/test/emqx_rule_id_SUITE.erl diff --git a/lib-opensource/emqx_rule_engine/test/emqx_rule_maps_SUITE.erl b/apps/emqx_rule_engine/test/emqx_rule_maps_SUITE.erl similarity index 100% rename from lib-opensource/emqx_rule_engine/test/emqx_rule_maps_SUITE.erl rename to apps/emqx_rule_engine/test/emqx_rule_maps_SUITE.erl diff --git a/lib-opensource/emqx_rule_engine/test/emqx_rule_metrics_SUITE.erl b/apps/emqx_rule_engine/test/emqx_rule_metrics_SUITE.erl similarity index 100% rename from lib-opensource/emqx_rule_engine/test/emqx_rule_metrics_SUITE.erl rename to apps/emqx_rule_engine/test/emqx_rule_metrics_SUITE.erl diff --git a/lib-opensource/emqx_rule_engine/test/emqx_rule_registry_SUITE.erl b/apps/emqx_rule_engine/test/emqx_rule_registry_SUITE.erl similarity index 100% rename from lib-opensource/emqx_rule_engine/test/emqx_rule_registry_SUITE.erl rename to apps/emqx_rule_engine/test/emqx_rule_registry_SUITE.erl diff --git a/lib-opensource/emqx_rule_engine/test/emqx_rule_utils_SUITE.erl b/apps/emqx_rule_engine/test/emqx_rule_utils_SUITE.erl similarity index 100% rename from lib-opensource/emqx_rule_engine/test/emqx_rule_utils_SUITE.erl rename to apps/emqx_rule_engine/test/emqx_rule_utils_SUITE.erl diff --git a/lib-opensource/emqx_rule_engine/test/emqx_rule_validator_SUITE.erl b/apps/emqx_rule_engine/test/emqx_rule_validator_SUITE.erl similarity index 100% rename from lib-opensource/emqx_rule_engine/test/emqx_rule_validator_SUITE.erl rename to apps/emqx_rule_engine/test/emqx_rule_validator_SUITE.erl diff --git a/lib-opensource/emqx_rule_engine/test/prop_rule_maps.erl b/apps/emqx_rule_engine/test/prop_rule_maps.erl similarity index 100% rename from lib-opensource/emqx_rule_engine/test/prop_rule_maps.erl rename to apps/emqx_rule_engine/test/prop_rule_maps.erl diff --git a/apps/emqx_telemetry/.gitignore b/lib-opensource/emqx_telemetry/.gitignore similarity index 100% rename from apps/emqx_telemetry/.gitignore rename to lib-opensource/emqx_telemetry/.gitignore diff --git a/apps/emqx_telemetry/README.md b/lib-opensource/emqx_telemetry/README.md similarity index 100% rename from apps/emqx_telemetry/README.md rename to lib-opensource/emqx_telemetry/README.md diff --git a/apps/emqx_telemetry/etc/emqx_telemetry.conf b/lib-opensource/emqx_telemetry/etc/emqx_telemetry.conf similarity index 100% rename from apps/emqx_telemetry/etc/emqx_telemetry.conf rename to lib-opensource/emqx_telemetry/etc/emqx_telemetry.conf diff --git a/apps/emqx_telemetry/priv/emqx_telemetry.schema b/lib-opensource/emqx_telemetry/priv/emqx_telemetry.schema similarity index 100% rename from apps/emqx_telemetry/priv/emqx_telemetry.schema rename to lib-opensource/emqx_telemetry/priv/emqx_telemetry.schema diff --git a/apps/emqx_telemetry/rebar.config b/lib-opensource/emqx_telemetry/rebar.config similarity index 100% rename from apps/emqx_telemetry/rebar.config rename to lib-opensource/emqx_telemetry/rebar.config diff --git a/apps/emqx_telemetry/src/emqx_telemetry.app.src b/lib-opensource/emqx_telemetry/src/emqx_telemetry.app.src similarity index 100% rename from apps/emqx_telemetry/src/emqx_telemetry.app.src rename to lib-opensource/emqx_telemetry/src/emqx_telemetry.app.src diff --git a/apps/emqx_telemetry/src/emqx_telemetry.erl b/lib-opensource/emqx_telemetry/src/emqx_telemetry.erl similarity index 100% rename from apps/emqx_telemetry/src/emqx_telemetry.erl rename to lib-opensource/emqx_telemetry/src/emqx_telemetry.erl diff --git a/apps/emqx_telemetry/src/emqx_telemetry_api.erl b/lib-opensource/emqx_telemetry/src/emqx_telemetry_api.erl similarity index 100% rename from apps/emqx_telemetry/src/emqx_telemetry_api.erl rename to lib-opensource/emqx_telemetry/src/emqx_telemetry_api.erl diff --git a/apps/emqx_telemetry/src/emqx_telemetry_app.erl b/lib-opensource/emqx_telemetry/src/emqx_telemetry_app.erl similarity index 100% rename from apps/emqx_telemetry/src/emqx_telemetry_app.erl rename to lib-opensource/emqx_telemetry/src/emqx_telemetry_app.erl diff --git a/apps/emqx_telemetry/src/emqx_telemetry_sup.erl b/lib-opensource/emqx_telemetry/src/emqx_telemetry_sup.erl similarity index 100% rename from apps/emqx_telemetry/src/emqx_telemetry_sup.erl rename to lib-opensource/emqx_telemetry/src/emqx_telemetry_sup.erl diff --git a/apps/emqx_telemetry/test/emqx_telemetry_SUITE.erl b/lib-opensource/emqx_telemetry/test/emqx_telemetry_SUITE.erl similarity index 100% rename from apps/emqx_telemetry/test/emqx_telemetry_SUITE.erl rename to lib-opensource/emqx_telemetry/test/emqx_telemetry_SUITE.erl