{"id":17520776,"url":"https://github.com/9ssi7/cillop","last_synced_at":"2025-03-06T00:30:47.175Z","repository":{"id":189224591,"uuid":"680279442","full_name":"9ssi7/cillop","owner":"9ssi7","description":"The Cillop Arcihtecture example project for golang.","archived":true,"fork":false,"pushed_at":"2024-07-05T07:59:16.000Z","size":248,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-01T23:56:39.688Z","etag":null,"topics":["architecture","clean-architecture","cqrs","ddd-architecture","event-driven","golang","golang-architect","http","i18n","rpc"],"latest_commit_sha":null,"homepage":"https://ssibrahimbas.medium.com/the-cillop-architecture-675ff2102b5a","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/9ssi7.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-08-18T19:36:35.000Z","updated_at":"2024-07-05T08:04:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"cde56213-86f3-4bf0-bb85-4f6e30670839","html_url":"https://github.com/9ssi7/cillop","commit_stats":null,"previous_names":["ssibrahimbas/cillop","9ssi7/cillop"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/9ssi7%2Fcillop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/9ssi7%2Fcillop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/9ssi7%2Fcillop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/9ssi7%2Fcillop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/9ssi7","download_url":"https://codeload.github.com/9ssi7/cillop/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242128290,"owners_count":20076177,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["architecture","clean-architecture","cqrs","ddd-architecture","event-driven","golang","golang-architect","http","i18n","rpc"],"created_at":"2024-10-20T11:24:34.966Z","updated_at":"2025-03-06T00:30:46.718Z","avatar_url":"https://github.com/9ssi7.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Project Archived\n\nDevelopment on this project has stopped, you can still use it but you should know that there will be no future updates.\n\nAfter Cillop, we created the architecture called [gopre](https://github.com/9ssi7/gopre) by further improving the approaches in Cillop and revising it according to golang and community standards. You should [check it out](https://github.com/9ssi7/gopre)!\n\n\n# Cillop Architecture 🏗\n\nCillop is a scalable and modular application architecture designed for building robust and maintainable applications.\n\nFor detailed explanation on how things work, checkout the [ssibrahimbas's Medium Text](https://ssibrahimbas.medium.com/the-cillop-architecture-675ff2102b5a)\n\n ![The Architecture Overview](./__readme__/cillop.drawio.png)\n\n## Directory Structure 📂\n\n### `app`\n\nContains core business logic components.\n\n- `command`: Houses command handlers, which handle command requests.\n  - `product_create.go`: Defines the creation of a product.\n- `query`: Consists of query handlers, responsible for fetching data.\n  - `product_get.go`: Defines how to get product information.\n\n### `cmd`\n\n- `main.go`: The entry point of the application.\n\n### `config`\n\n- `config.go`: Manages the application configuration files.\n\n### `locales`\n\n- `en.toml`: Contains localization files for supporting multiple languages.\n\n### `pkg`\n\n- `cqrs`: Contains components for the CQRS (Command Query Responsibility Segregation) pattern.\n  - `cqrs.go`: CQRS related implementations.\n- `domains`: Encapsulates business logic into separate domain models.\n  - `product`: Contains all the product related business logic.\n- `mongodb`: Contains everything related to MongoDB connectivity and operations.\n- `server`: Houses the HTTP server configuration and initialization logic.\n\n### `server`\n\nHolds different types of server implementations.\n\n- `event-stream`: Event streaming related components.\n- `http`: HTTP server and related functionalities.\n- `rpc`: Remote Procedure Call (RPC) server and related functionalities.\n  - `protos`: Contains Protocol Buffer files.\n  - `routes`: Contains generated Protocol Buffer Go files.\n\n### `service`\n\n- `application.go`: Contains service application logic which binds everything together.\n\n## Building and Running 🚀\n\n```bash\n# Building the application\ngo build -o cillop ./cmd\n\n# Running the application\n./cillop\n```\n\n## Docker Support 🐳\n\nA Dockerfile is included to build a Docker image of the application.\n\n```bash\n# Build Docker Image for production\ndocker build -t cillop-app .\n\n# Run Docker Container for development (hot reloading)\ndocker build -t cillop-app -f Dockerfile.dev .\n\n# Copy env file from .env.example\ncp .env.example .env\n\n# Run Docker Container for production\ndocker run -p 8080:8080 --env-file .env --name cillop-app cillop-app\n```\n\n## Nats and DB Setup 📦\n\n### Nats\n\n- Install Nats with jetstream locally using Docker\n\n```bash\ndocker run -p 4222:4222 -p 8222:8222 -p 6222:6222 --name nats-cillop -ti nats:latest --js\n```\n\n### MongoDB\n\n- Install MongoDB locally using Docker\n\n```bash\ndocker run -d -p 27017:27017 --name mongo-cillop mongo:latest\n```\n\n## Dependencies 📦\n\nGo Modules are used for dependency management, which are listed in go.mod and go.sum.\n\n## Contributing 🤝\n\nWe welcome contributions! Please see CONTRIBUTING.md for details on how to contribute.\n\n## License 📄\n\nThis project is licensed under the Apache License 2.0 - see the LICENSE file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F9ssi7%2Fcillop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F9ssi7%2Fcillop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F9ssi7%2Fcillop/lists"}