Architecturale patronen zijn standaard manieren om interacties tussen modules van een systeem te organiseren. De keuze hangt af van zakelijke behoeften, schaalvereisten, onderhoud en ontwikkeling.
De populairste sjablonen:
Voor applicaties met een grote datastroom zijn gebeurtenis- en wachtrijpatronen geschikt. Bijvoorbeeld, een gebeurtenis wordt naar een broker gestuurd (RabbitMQ/Kafka), waarna abonnees asynchroon reageren.
Voorbeeld van interactie in een Event-Driven architectuur:
import pika connection = pika.BlockingConnection(pika.ConnectionParameters('localhost')) channel = connection.channel() channel.queue_declare(queue='email_queue') channel.basic_publish(exchange='', routing_key='email_queue', body='user signup event')
Belangrijke kenmerken:
Kunnen gebeurtenissen alleen voor asynchrone communicatie worden gebruikt?
Nee, de evenementenarchitectuur staat ook synchrone oproepen toe als onmiddellijke reactie op een gebeurtenis vereist is.
Zijn lagen (Layered pattern) altijd fysiek gescheiden services?
Nee, lagen zijn een logische abstractie die geen fysieke scheiding vereist: je kunt meerdere lagen in één proces plaatsen.
Kan het Microkernel-patroon alleen voor desktopapplicaties worden toegepast?
Nee, dit patroon wordt ook succesvol toegepast op de server, bijvoorbeeld voor het bouwen van CMS, waar modules en plugins dynamisch worden aangesloten en ontkoppeld.