- Registracija uporabnikov
- Ustvarjanje in seznam tem
- Pošiljanje, urejanje in brisanje sporočil
- Všečkanje sporočil z dinamičnim štetjem všečkov
- Naročanje na teme in prejemanje sporočil v realnem času
- Distribuirano delovanje z uporabo verižne replikacije za razporeditev bralnih zahtevkov
- Podpora odpovedim vozlišč z avtomatskim ponovnim vzpostavljanjem verige in usklajevanjem zapisov
Storitev je implementirana v programskem jeziku Go z uporabo gRPC za komunikacijo med strežnikom in odjemalci. Komunikacija med strežniškimi vozlišči je izvedena preko RPC protokola. Vsa podatkovna struktura in vmesnik so definirani v Protocol Buffers (.proto) datotekah, iz katerih je samodejno generirana Go koda za strežniški in odjemalski vmesnik.
razpravljalnica/
├── api/
│ ├── proto/ # Definicija gRPC in Protocol Buffers vmesnika (.proto)
│ └── pb/ # Samodejno generirana Go koda iz .proto
│
├── cmd/
│ ├── server/ # Zagon gRPC strežnika (main.go)
│ └── client/ # Enostaven gRPC odjemalec za testiranje
│
├── internal/
│ ├── storage/ # In-memory shranjevanje podatkov (users, topics, messages, likes)
│ │ ├── storage.go # Vmesnik Storage
│ │ └── mem_storage.go # Implementacija v delovnem pomnilniku
│ │
│ │
│ ├── replication/ # Logika verižne replikacije
│ │ # (head → middle → tail, propagacija zapisov)
│ │
│ ├── subscription/ # Naročnine na teme (SubscribeTopic),
│ │ # upravljanje streamov in pošiljanje MessageEvent
│ │
│ └── control/ # Kontrolna ravnina (ControlPlane):
│ # stanje gruče, head/tail, topologija verige
│
├── go.mod # Go modul in odvisnosti
├── go.sum
├── README.md
└── logo.png
- Namesti protoc compiler in Go plugin za proto grpc-go.
- Generiraj Go kodo iz
.protodatotek z ukazomprotoc. - Zaženi strežnik z
go run cmd/server/main.go(privzeto na portu:50051). - Zaženi odjemalca z
go run cmd/client/main.goza testiranje RPC klicev. - Razvijaj dodatne funkcionalnosti znotraj
internalpaketov.
