SyncLite - Build Anything Sync Anywhere
2.8K
SyncLite (https://www.synclite.io) is an open-source, low-code, comprehensive relational data consolidation platform empowering developers to rapidly build data intensive applications for edge, desktop and mobile environments. SyncLite enables performing real-time, transactional data replication and consolidation from a myriad of sources including edge/desktop applications using popular embedded databases (SQLite, DuckDB, Apache Derby, H2, HyperSQL), data streaming applications, IoT message brokers, traditional database systems(ETL) and more into a diverse array of databases, data warehouses, and data lakes, enabling AI and ML use-cases at all three levels: Edge, Fog and Cloud.
{Edge/Desktop Apps} + {SyncLite Logger} ---> {Staging Storage} ---> {SyncLite Consolidator} ---> {Destination DB/DW/DataLakes}
SyncLite enables following scenarios for industry leading databases, data warehouse and data lakes.
SyncLite's novel CDC replication framework for embedded databases, is designed to empower general purpose data-intensive applications, Gen AI Search/RAG applications for edge, desktop, and mobile environments. It seamlessly integrates with embedded databases like SQLite, DuckDB, Apache Derby, H2, HyperSQL(HSQLDB), enabling Change Data Capture + transactional, real-time data replication and consolidation from them into a diverse range of industry leading databases, data warehouses, and data lakes, enabling global analytics, AI Search and RAG applications.
{Edge/Desktop Apps} + {SyncLite Logger + Embedded Databases} ---> {Staging Storage} ---> {SyncLite Consolidator} ---> {Destination DB/DW/DataLakes}
SyncLite facilitates development of large-scale data streaming applications through SyncLite Logger, which offers both a Kafka Producer API and SQL API. This allows for the ingestion of massive amounts of data and provides the capability to query the ingested data using the SQL API within applications. Together, SyncLite Logger and SyncLite Consolidator enable seamless last-mile data integration from thousands of streaming application instances into a diverse array of final data destinations.
{Data Streaming Apps} + {SyncLite Logger} ---> {Staging Storage} ---> {SyncLite Consolidator} ---> {Destination DB/DW/DataLakes}
Set up many-to-many, scalable database replication/migration/incremental ETL pipelines from a diverse range of source databases and raw data files into a diverse range of destinations.
{Source Databases} ---> {SyncLite DBReader} ---> {Staging Storage} ---> {SyncLite Consolidator} ---> {Destination DB/DW/DataLakes}
Effortlessly connect numerous MQTT brokers (IoT gateways) to one or more final data destinations.
{IoT Message Brokers} ---> {SyncLite QReader} ---> {Staging Storage} ---> {SyncLite Consolidator} ---> {Destination DB/DW/DataLakes}
Refer https://github.com/syncliteio/synclite-logger-java/tree/main to learn about SyncLite logger's usage.
You can get started with this docker image or download the release from GitHub Repo: https://github.com/syncliteio/SyncLite/releases
docker pull syncliteio/synclite-consolidator:latest
mkdir -p "$HOME"/synclite/job1/workDir
mkdir -p "$HOME"/synclite/job1/stageDir
docker run \
-p 8080:8080 \
-v "$HOME"/synclite:/home/root/synclite \
--net=host \
-d \
--name synclite-consolidator \
-e "JAVA_TOOL_OPTIONS=-Duser.home=/home/root" \
syncliteio/synclite-consolidator:latest sh -c "./start.sh && tail -f /dev/null"
If you are doing this deployment on a cloud VM, then add inbound rule for port number 8080 for this VM. Create a local port forwarding from your host to this cloud VM with a fresh command prompt using ssh as below, so that you can launch the SyncLite consolidator at the cloud VM just by accessing localhost:8080
ssh -i <your_pem_file.pem> -L 8080:localhost:8080 user@<CloudVM_PublicIP>
Open http://localhost:8080/synclite-consolidator to launch SyncLite Consolidator dashboard. (Default username/password for Tomcat manager app http://localhost:8080/manager is synclite/synclite)
Open http://localhost:8080/synclite-sample-app to launch SyncLite sample application.
This release has a free license which allows unlimited data consolidation across popular open source/free database systems: PostgreSQL/MySQL/MongoDB/Apache Iceberg Tables/DuckDB/SQLite. Reach out to us at [email protected] to get your copy of license based on your requirements.
Configure and start SyncLite consolidator job in the SyncLite Consolidator application. You can follow through the "Configure Job" wizard reviewing all the default configuration values. Create SyncLite databases/devices from the deployed SyncLite sample application and run SQL workloads. Observe data consolidator in the SyncLite Consolidator dashboard. You can check device specific data consolidation progress on individual device pages (from "List Devices" page), query destination database on the "Analyze Data" page. Refer "SyncLite Consolidator Configurations" section at https://github.com/syncliteio/SyncLite/blob/main/DOCUMENTATION.md for more details about configuration options for SyncLite consolidator.
You can deploy your edge applications using SyncLite logger on different hosts/devices and share the local-stage-directory of your respective SyncLite applications with SyncLite Consolidator host via one of the following staging mechanisms. Refer documentation for setting up following staging storage(s).
docker pull syncliteio/synclite-stage-sftp-server:latest
PORT=55555
UPLOAD_USER=synclite
UPLOAD_USER_PASSWORD=synclite
STAGE_DIR_NAME=stageDir
docker run \
-d \
-p ${PORT}:22 \
-v $HOME/synclite/stageDir:/var/uploads/${STAGE_DIR_NAME} \
--name synclite-stage-sftp-server \
syncliteio/synclite-stage-sftp-server:latest
(Note: Change default user/password)
If you are doing this deployment on a cloud VM, then add inbound rule for port number 55555 for this VM.
sftp -P 55555 synclite@<SFTP_Server_HostIP>
destination-type=SFTP
local-data-stage-directory=<UserHome/synclite/stageDir>
sftp:host=<HostName/IP of the host/VM running the staging SFTP server>
sftp:port=55555
sftp:user-name=synclite
sftp:password=synclite
sftp:remote-data-stage-directory=/stageDir
docker pull syncliteio/synclite-dst-postgresql:latest
DST_USER=synclite
DST_USER_PASSWORD=synclite
DST_DB_NAME=synclitedb
mkdir -p $HOME/synclite/dstDir/postgresql/data
docker run \
-d \
-p 5432:5432 \
--name synclite-dst-postgresql \
-v $HOME/synclite/demo/workDir/dst/postgresql/data:/var/lib/postgresql/data \
syncliteio/synclite-dst-postgresql:latest
(Note: Change default user/password)
After a successful trial, if you need to perform another fresh trial, stop docker containers and delete contents under /home/synclite/ directory to start a fresh trial of a different scenario etc.
If you want to use SyncLite platform as a database ETL/migration/replication solution, launch the synclite-dbreader app by opening: http://localhost:8080/synclite-dbreader, click on "Configure DB Reader" -> "Configure and Start" page, fill the source database connection details and set various configuration options as needed, followed by selection of tables/columns, specification of unique keys (if a table does not have PK defined explicitly, it is highly recommended to specify a logical unique key even though it is not defined in the source database table) and incremental keys for tables for which you need incremental replication to be setup (an incremental key column is a column with monotonically increasing value such as last_update_time, a timestamp column which is updated on each UPDATE/INSERT of a record in that table. SyncLite strongly recommends to also create an index on such a column if it is to be used as incremental key for replication of this table, to speed up replication), on the "Configure DB Tables" page and start the job. Configure and start the SyncLite consolidator job to start the database migration/replication pipeline and explore many more features.
If you want to use SyncLite platform as a rapid IOT data connector to read data from an MQTT broker and deliver it to one or more destination databases, launch the synclite-qreader app by opening : http://localhost:8080/synclite-qreader, click on "Configure Reader" -> "Configure and Start "page, fill the MQTT broker details and set various configuration options as needed, followed by schema details for each topic : number of fields, create table statement (in SQLite syntax) on the "Configure Topic Schemas" page and start the job. Configure and start the SyncLite consolidator job to have all your IOT data published to your MQTT broker get consolidated into the destination databases in real-time.
You can use the SyncLite JobMonitor utility by launching http://localhost:8080/synclite-jobmonitor, to track all the jobs you have created along with their types, status' and process IDs. You can directly load the jobs from this portal as well.
Refer our documentation for more details about the platform usage, tools, configuration options etc. at https://github.com/syncliteio/SyncLite/blob/main/DOCUMENTATION.md
Contact [email protected] for support and feedback.
Content type
Image
Digest
sha256:8a9fd924e…
Size
2.7 GB
Last updated
almost 2 years ago
docker pull syncliteio/synclite-consolidator