Skip to content

murigugitonga/ICCS_data_fabric

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NISCSS DATA FABRIC SIMULATION

Overview

This project simulates a data fabric architecture for the Integrated National Security command and control System

It demonstrates how heterogeneous security data streams can be

  • Ingested
  • Standardized
  • Published to an event backbone
  • Visualized through a common Operating Picture

The system employs an event-driven microservices architecture using apache kafka as the central event streaming platform.

The main focus of this project is to demonstrate the flow of data rather than persistence, AI integration and advanced security controls. These features will be added at a later stage.


Architecture

Data feeds -> Gateway -> Event Backbone -> Visualization

Services

Gateway Service

This service acts as the API boundary of the system.

Responsibilities:

  • Validating incoming requests using pydantic
  • Publishing structured events to kafka
  • Managing Kafka producer lifecycle
  • Exposing REST endpoints for event submission

Kafka (Dockerized)

Kafka serves as the event streaming backbone.

Responsibilities

  • Asynchronous event distribution
  • Decoupling producers and consumers
  • Scalable event-driven communication

Kafka runs inside docker using Docker Compose.

Generator

The Generator service will:

  • Simulate multi-agency data streams
  • Produce synthentic security events
  • Publish directly or through the gateway

This abstracts data simulation from the api concerns and maintains the SOLID design principles.

Dashboard

Visualization is achieved by a dashboard powered by the streamlit library. The dashboard should:

  • Consume kafka events
  • Provide a real-time Common Operating Picture
  • Demonstrate operational awareness dashboards

Technology Stack

This project is conceptually a python-FastAPI project.

  • Python 3.12+
  • FastAPI
  • Apache Kafka
  • Docker & Docker Compose
  • uv (dependency manager)
  • Streamlit (visualization)

Running the project

Run these after successfully cloning the project.

From the project root:

docker compose up -d
docker ps

On the gateway subdirectory

cd gateway
uv run uvicorn app.main:app --reload

This should open the fastAPI swagger UI documentation

PS: This file is subject to change as I progress with the project.

About

A complete data fabric for an integrated security command and control system.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors