Suggest an editImprove this articleRefine the answer for “What is Akita?”. Your changes go to moderation before they’re published.Approval requiredContentWhat you’re changing🇺🇸EN🇺🇦UAPreviewTitle (EN)Short answer (EN)**Akita** is a library for managing state in Angular, an alternative to NgRx and NGXS with an emphasis on simplicity, structure, and an object-oriented approach (Store, Query, Service). **Key point:** Akita doesn't require reducers or actions, and side effects run directly in services, meaning less boilerplate than NgRx.Shown above the full answer for quick recall.Answer (EN)Image**Akita** is a library for managing state in Angular, an alternative to NgRx and NGXS, with an emphasis on **simplicity**, **structure**, and an **object-oriented approach**. ### The main idea: **Akita = reactive state + classes + less boilerplate code.** It helps you: - store data (in a store), - update it centrally (through methods), - subscribe to changes (through `select()`). ### Main elements of Akita: 1. **Store** - a class where the state lives - you set the initial state and manage it 2. **Query** - a class for reading data from the store - convenient for getting `selectName()`, `selectCount()`, and so on 3. **Service** - business logic: loading from an API, updates, deletions, and so on - calls store methods ### Example: ```ts export interface Todo { id: number; title: string; } @StoreConfig({ name: 'todos' }) @Injectable() export class TodosStore extends Store<Todo[]> { constructor() { super([]); } } ``` ```ts @Injectable() export class TodosQuery extends Query<Todo[]> { todos$ = this.select(); // subscribe to all todos constructor(protected store: TodosStore) { super(store); } } ``` ```ts @Injectable() export class TodosService { constructor(private todosStore: TodosStore) {} add(todo: Todo) { this.todosStore.update(state => [...state, todo]); } } ``` ### How it differs from NgRx: | | **Akita** | **NgRx** | |---|---|---| | Approach | Class-based, simple | Functional, strict | | Reducers | None | Required | | Actions | Not required | Required | | RxJS | Used, but lightly | Used heavily | | Side effects | In services | Through `Effects` | ### Conclusion: **Akita** is a lightweight, easy-to-understand alternative to NgRx. If you want to manage state **without unnecessary complexity**, with good structure, Akita can be an ideal fit.For the reviewerNote to the moderator (optional)Visible only to the moderator. Helps review go faster.