Idempotent
Pendahuluan
Di dunia IT software engineering, idempotent adalah sifat suatu fungsi atau operasi yang menghasilkan hasil yang sama.
Terlepas dari berapa kali fungsi atau operasi tersebut dipanggil.
Istilah ini berasal dari bahasa Latin
- “idem” yang berarti “sama”
- “potent” yang berarti “kekuatan”.
Apa gunanya ?
Idempotent memiliki banyak manfaat dalam software engineering.
Salah satu manfaatnya adalah dapat meningkatkan kinerja dan efisiensi sistem.
Misalnya, jika kita memiliki fungsi untuk menambahkan item ke dalam keranjang belanja.
Fungsi tersebut akan idempotent jika menambahkan item yang sama hanya sekali.
Bahkan jika fungsi tersebut dipanggil beberapa kali.
Hal ini karena fungsi tersebut hanya akan menambahkan item yang belum ada di dalam keranjang belanja.
Manfaat lainnya ?
Manfaat lain dari idempotent adalah dapat meningkatkan keandalan sistem.
Misalnya, jika kita memiliki fungsi untuk mengirim email, fungsi tersebut akan idempotent jika email hanya akan dikirim sekali.
Bahkan jika fungsi tersebut dipanggil beberapa kali.
Hal ini karena fungsi tersebut hanya akan mengirim email jika penerima belum menerima email tersebut.
Idempotent ini biasanya digunakan dimana saja ?
Dalam dunia IT software engineering, idempotent sering digunakan dalam berbagai konteks, seperti:
- API
- Database
- Cache
- Microservices
Coba kita bahas satu persatu :
API
Idempotent sering digunakan dalam API untuk memastikan bahwa permintaan yang sama hanya akan menghasilkan hasil yang sama.
Misalnya, jika kita memiliki API untuk membuat akun, API tersebut akan idempotent jika akun hanya akan dibuat sekali, bahkan jika API tersebut dipanggil beberapa kali.
Hal ini karena API tersebut hanya akan membuat akun jika akun tersebut belum ada.
Database
Idempotent juga sering digunakan dalam database untuk memastikan bahwa operasi yang sama hanya akan menghasilkan hasil yang sama.
Misalnya, jika kita memiliki database untuk menyimpan data pelanggan, operasi untuk menambah data pelanggan akan idempotent jika data pelanggan hanya akan ditambahkan sekali, bahkan jika operasi tersebut dipanggil beberapa kali.
Hal ini karena operasi tersebut hanya akan menambahkan data pelanggan jika data pelanggan tersebut belum ada.
Cache
Idempotent juga sering digunakan dalam cache untuk memastikan bahwa data yang sama hanya akan diambil dari cache sekali.
Misalnya, jika kita memiliki cache untuk menyimpan data produk, operasi untuk mengambil data produk akan idempotent jika data produk hanya akan diambil dari cache sekali, bahkan jika operasi tersebut dipanggil beberapa kali.
Hal ini karena operasi tersebut hanya akan mengambil data produk dari cache jika data produk tersebut belum ada di dalam cache.
Microservices
Idempotent juga sering digunakan dalam microservices untuk memastikan bahwa panggilan antar microservices hanya akan menghasilkan hasil yang sama.
Misalnya, jika kita memiliki microservice untuk membuat pesanan, microservice tersebut akan idempotent jika pesanan hanya akan dibuat sekali, bahkan jika microservice tersebut dipanggil beberapa kali.
Hal ini karena microservice tersebut hanya akan membuat pesanan jika pesanan tersebut belum ada.
Idempotent adalah konsep penting yang perlu dipahami oleh para software engineer. Idempotent dapat meningkatkan kinerja, efisiensi, dan keandalan sistem.
Itu…