Skip to content

baptistaher/fullcycle-challenge

Repository files navigation

FullCycle Challenge

This repository is a collection of project, experiments, and reference implementations built during the FullCycle journey.

The goal is to learn and explore software architecture, backend engineering, distributed systems, and best practices through practical examples.

Each folder focuses on a specific architecture style, pattern, or technology, serving both as a learning and a reference for real-world systems.

Project Overview

Architecture & Design

  • Clean Architecture - Implementation following Clean Architecture principles: separation of concerns, use cases, entities, and frameworks and details.
  • Hexagonal Architecture - Hexagonal (Ports & Adapters) architecture emphasizing domain isolation and testability
  • DDD(Domain-Driven Design) - Tactical DDD concepts such as Aggregates, Entities, Value Objects, Repositories, and Domain Services.
  • c4 - C4 model diagrams (Context, Container, Component, Code) to document system architecture visually
  • Solid - Practical examples applying the SOLID principles in real codebases

Communication & Integration

  • Communication Systems - Experiments and implementations of inter-service comunaction patterns. (review this)
  • Event-Driven Architecture (EDA) - Event-base system showcasing asynchronous communication and loose coupling
  • Kafka - Apache Kafka examples covering producers, consumers, topics and messaging patterns
  • rabbitmq - Message broker usage with queues, exchanges

System Styles

  • Monolithic - Traditional monolithic application architecture for comparison and baseline understanding.

  • MS (Microservices) - Microservices-based systems focusing on service boundaries, communication, and scalability.

Security & Identity

  • Keycloak - Authentication and authorization examples using Keycloak (OIDC, OAuth2, SSO).

Infrastructure & DevOps

  • Docker - Containerization examples, Dockerfiles, and Docker Compose setups for local development.

  • Observabilidade - Observability practices including logging, metrics, and tracing (monitoring-ready systems).

Code Quality & Tooling

  • Codeflex - Flexible code structures and experiments around maintainability and extensibility.

Goals of This Repository

  • Apply theory in practice

  • Compare architectural styles side-by-side

  • Build production-inspired systems

  • Serve as a personal knowledge base

  • Act as reference material for future projects

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published