This directory contains a complete, self-contained walkthrough guide for building custom Airbyte connectors using the JSONPlaceholder API as an example.
- WALKTHROUGH.md - Comprehensive step-by-step guide
 - jsonplaceholder-source/ - Example source connector implementation
 - destinations/airbyte-faros-destination/ - Minimal Faros destination with JSONPlaceholder converters
 - setup.sh - Script to set up the development environment
 - test-source.sh - Script to test the JSONPlaceholder source
 - test-converter.sh - Script to test the Faros destination converter
 - run-e2e.sh - Script to run end-to-end tests
 
- Read the WALKTHROUGH.md guide
 - Run 
./setup.shto set up the environment - Follow the guide to understand how the connector works
 - Use the test scripts to verify everything is working
 
- How to create an Airbyte source connector
 - How to implement streams for reading data
 - How to support incremental syncing
 - How to create Faros destination converters
 - How to map external data to the Faros schema
 - How to test and deploy your connector
 
This guide contains a self-contained example with all necessary components:
airbyte-custom-connector-guide/
├── jsonplaceholder-source/               # Example source connector
│   ├── src/                             # Source code
│   │   ├── index.ts                     # Main source class
│   │   └── streams/                     # Stream implementations
│   │       ├── users.ts
│   │       └── todos.ts
│   └── resources/                       # Configuration and schemas
│       ├── spec.json
│       └── schemas/
│           ├── users.json
│           └── todos.json
│
├── destinations/                        # Minimal Faros destination
│   └── airbyte-faros-destination/
│       ├── src/
│       │   ├── index.ts                 # Simplified destination
│       │   └── converters/
│       │       ├── converter.ts         # Base converter class
│       │       └── jsonplaceholder/     # JSONPlaceholder converters
│       │           ├── users.ts         # Users converter
│       │           └── todos.ts         # Todos converter
│       ├── bin/main                     # Executable entry point
│       └── package.json
│
├── WALKTHROUGH.md                       # Detailed guide
├── README.md                           # This file
└── *.sh                                # Helper scripts
- Source: Reads data from external systems (JSONPlaceholder API in this example)
 - Streams: Different types of data from the source (users, todos)
 - Converters: Transform source data to Faros canonical models
 - Faros Schema: Standardized data models (tms_User, tms_Task, etc.)
 
- Node.js 22+
 - npm
 - Basic TypeScript knowledge
 - Docker (optional, for containerization)
 
This is a simplified example for educational purposes. In a real-world scenario:
- The source would be more complex with actual API integration
 - Error handling and logging would be more comprehensive