Skip to content

Tofpu/vertex-link

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

189 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vertex Link

A local-first synchronization engine written in Java, designed to prototype an industrial edge-to-cloud telemetry architecture.

image

⚠️Transparency disclaimer: This project is based on an interview challenge provided by Gemini. The first 3 primary technologies used throughout the project were dictated by the challenge. Furthermore, during the development of this project, Gemini were only used to ask clarifying questions which is meant to mimick a real interview. They were not used to generate code (aside from generating default logback.xml file). They also also used for interface name suggestions (Ingest suffix, etc). The dashboard design were also made by Gemini due to lack of UI/UX skills.

Capabilities:

  • The registration of edge nodes to the central server on boot.
    • The registration request is validated prior to acceptance by sending a ping request via gRPC to the given edge node to confirm the validity of the provided address (host:port).
    • After the registration period, when the central server restarts, the edge node can continue sending telemetries to the central server without re-registering itself.
  • The transmission of incoming telemetry from edge nodes to the central server.
    • If the connection from the edge node to the central server were severed, the telemetry are written to disk until the connection is reinstated.
  • The transmission of configuration commands between edge nodes and the central server.
  • The synchronization of central server's configuration with the edge node's configuration during the launch of edge node and config updates.
  • The persistance of edge nodes' information to Redis.
  • An informative dashboard with general and node-specfic metrics.

Technology used:

  • RPC (gRPC): facilitates communication between edge nodes and central server.
  • Protobuf 3: introduces compact representation of domain data objects to minimize network usage.
  • Redis: stores upcoming telemetry data in a stack until they are processed by the central server
  • MVStore: stores the ingested telemetry into disk during connection outage on the edge server.
  • Javalin (Web Framework) + HTMX (AJAX) + JTE (Templating Engine): renders a functional dashboard with informative data.
  • Mockito, AssertJ and Awaitility: ensures that classes are behaving as expected

Remaining tasks

  • The ability to modify node's config values at the dashboard
  • We need more unit tests. We also need to introduce integration tests

About

A local-first synchronization engine written in Java, designed to prototype an industrial edge-to-cloud telemetry architecture.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages