The project undertaken in Golang with no packages or libraries focused on optimizing database performance, handling high concurrency, and processing large data volumes efficiently.
The project involved reconciling different types of invoices by parsing XML files obtained through an API or dynamic database location, followed by saving reconciliation data in a database.
The decision to use Golang without external packages was to have full control over database operations, including queries, indexes, and table configurations, catering to specific project requirements.
High concurrency was managed by implementing numerous goroutines and channels to handle data flow effectively from various sources.
The project structure included folders for configuration, controllers, database operations, HTTP handlers, interfaces, middleware, models, routes, services, and utilities.
Database configuration settings in PostgreSQL were finely tuned for performance, encompassing memory allocation, WAL buffer size, synchronous commit, checkpoint intervals, and parallel worker process settings.
Critical indexes were utilized in the database schema to optimize query performance, including primary key indexes, foreign key indexes, lookup indexes, and business logic indexes.
XML data extraction and processing in Golang were facilitated by defining structured interfaces for parsing complex XML structures, simplifying data extraction and manipulation.
Concurrency was crucial in the project to enhance data processing speed, utilizing goroutines and channels for efficient data handling and processing.
Completing the project without external dependencies in Golang provided advantages like performance control, minimal dependency management challenges, smaller binary size, deep system understanding, and leveraging Go's core strengths like concurrency and extensive standard library.