Backend Engineering Flashcards
What are the key concerns of backend engineering?
Architecture, functionalities like session management, authentication, business logic, AI, server-side rendering, database persistence, caching, search indexing, and tooling.
What are the main backend architectures?
Monolithic and Microservices architectures.
What is the difference between Monolithic and Microservices architecture?
Monolithic: Same process for all services. Microservices: Different processes for different services.
What are some architectures supporting Microservices?
Message-driven Architecture (MDA), Event-driven Architecture (EDA), and API-based architecture.
What is Message-driven Architecture (MDA)?
It involves messaging between services, typically asynchronous, and requires message delivery confirmation.
What is Event-driven Architecture (EDA)?
Used for real-time processing, typically asynchronous, and the producer does not need to confirm event consumption.
What is Domain-driven Design (DDD)?
A design approach that matches software structure and language with the business domain.
What is Hexagonal Architecture?
An architecture pattern that involves ports and adapters to decouple business logic from external systems.
What is the difference between API and Message-driven communication?
API is about request and response, while messages send information between systems.
What are some web application frameworks for backend development?
NestJS (TypeScript), Flask, Django, Tornado (Python), Jakarta EE, Spring (Java), Actix Web, Axum (Rust).
What is Apache Kafka?
A distributed event streaming platform for handling real-time data feeds.
What are common authentication and authorization mechanisms?
OAuth and OpenID Connect.
What is OAuth used for?
Authorization, allowing third-party apps to access user data without exposing credentials.
What database systems support SQL persistence?
PostgreSQL and CockroachDB.
What is special about PostgreSQL?
It supports ACID transactions, key-value storage, and multi-region distribution.
What are examples of NoSQL databases?
CouchDB, MongoDB, and Redis.
What is unique about CouchDB?
It supports global server clusters, mobile and web applications, and offline-first replication.
What is Redis used for?
In-memory caching and data storage.
What is Elasticsearch used for?
Search indexing and analytics.